man sudo
não me deixa entender as diferenças.
Mario Palumbo's questions
Depois de criar o timidity.service
arquivo e o link simbólico relacionado para iniciar o serviço automaticamente na reinicialização do sistema, reiniciei o sistema e dei a seguinte entrada:
sudo systemctl status timidity
Saída:
× timidity.service - TiMidity++ Daemon
Loaded: loaded (/lib/systemd/system/timidity.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2024-10-07 16:34:46 CEST; 50s ago
Process: 635 ExecStart=/usr/bin/timidity -iA Os (code=exited, status=1/FAILURE)
Main PID: 635 (code=exited, status=1/FAILURE)
CPU: 31ms
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: Started TiMidity++ Daemon.
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: jack_client_new: deprecated
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Cannot connect to server socket err = No such file or directory
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Cannot connect to server request channel
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: jack server is not running or cannot be started
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: JackShmReadWritePtr::~JackShmReadWritePtr - Init not done for -1, skipping unlock
ott 07 16:34:47 netcom-Vostro-15-3510 timidity[635]: Couldn't open output device
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: timidity.service: Main process exited, code=exited, status=1/FAILURE
ott 07 16:34:46 netcom-Vostro-15-3510 systemd[1]: timidity.service: Failed with result 'exit-code'.
Meu nome de usuário está associado ao audio
grupo.
Link simbólico:
/usr/lib/systemd/system/multi-user.target.wants/timidity.service
Serviço:
/usr/lib/systemd/system/timidity.service
Contém:
[Unit]
Description=TiMidity++ Daemon
After=sound.target
Requires=sound.target
[Service]
ExecStart=/usr/bin/timidity -iA Os
Type=simple
[Install]
WantedBy=multi-user.target
Também tentei alterar o arquivo "timidity.service" para o seguinte:
[Unit]
Description=TiMidity++ Daemon
After=pulseaudio.service
Requires=pulseaudio.service
[Service]
ExecStart=/usr/bin/timidity -iA Os
Type=simple
[Install]
WantedBy=multi-user.target
Mas depois de reiniciar o sistema novamente, o erro é o mesmo.
Tentando iniciar o serviço manualmente pelo terminal com o sistema já iniciado, o serviço inicia corretamente.
O que estou fazendo errado?
Quanto a:
$ dpkg -f <deb-file> <field>
há algo que também:
$ apt-cache show <package> <field>
me retorna um campo de um pacote?
Por exemplo, supondo que eu tenha o discord já instalado e seu arquivo .deb no diretório atual, eu executo os comandos:
$ dpkg -f ./discord.deb Version
$ apt-cache show discord Version
Saídas que eu gostaria:
0.0.27
0.0.27
Saída real:
0.0.27
... # discord package unwanted long output
N: Unable to locate package Version
Eu gostaria de uma solução que fizesse uso do próprio comando apt-cache ou dpkg.
Na ausência de tal solução, aceito o analisador usual.
Como resolvo?
EDIÇÃO 1:
Eu só quero exibir a versão instalada de um pacote.
Na pasta /etc/apt/sources.list.d
tenho o arquivo:
google-chrome-repo.list:
deb [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main
deb-src [arch=amd64 signed-by=/usr/share/keyrings/google-chrome-keyring.gpg] https://dl.google.com/linux/chrome/deb/ stable main
e na pasta /usr/share/keyrings
eu tenho um arquivo chamadogoogle-chrome-keyring.gpg
Se eu instalar o google-chrome:
sudo apt-get install google-chrome-stable
Esse segundo arquivo irritante é criado com /etc/apt/sources.list.d
o nome google-chrome.list
, com conteúdo:
### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb [arch=amd64] https://dl.google.com/linux/chrome/deb/ stable main
e o arquivo na /etc/apt/trusted.gpg.d
pasta chamadagoogle-chrome.gpg
Se eu não excluir o irritante arquivo gerado automaticamente /etc/apt/sources.list.d/google-chrome.list
, o comando:
sudo apt-get purge google-chrome-stable
vai dar o seguinte erro:
E: Conflicting values set for option Signed-By regarding source https://dl.google.com/linux/chrome/deb/ stable: /usr/share/keyrings/google-chrome-keyring.gpg !=
E: The list of sources could not be read.
Em vez disso, meu objetivo é poder fazer apt-get install
e apt-get purge
do google-chrome quantas vezes quiser, sem primeiro ter que excluir o arquivo gerado automaticamente a cada vez.
Como posso conseguir isso? Existe uma maneira de fazer apt-get
ignorar esse arquivo?
As soluções propostas em outros tópicos como delete that file
não são realmente funcionais.
Eu quero poder usar apt-get
diretamente como escrito acima e não scripts ou funções substitutas.
Seria bom se houvesse alguns Dpkg::Options::=
como:
Of multiple coincident files in "sources.list.d", only consider the oldest one (the one created first).
Este script de exemplo:
cat <<- EOF | bash -c
command1 args
command2 args
command3 args
command4 args
command5 args
EOF
Retorna: bash: -c: option requires an argument
Como uso bash -c com here-document?
Eu quero pegar todos eles, o que não consigo a partir dos comandos man apt-get
e man apt.conf
, nem mesmo procurando por eles online.
No manual, por exemplo não existe APT::Get::Clean
e colocando uma opção falsa no comando apt-get
, então:
sudo apt-get -o APT::Get::Swearword=true dist-upgrade
o comando é executado corretamente, nenhum erro aparece e o código de saída é igual a 0, então mesmo as tentativas não conseguem verificar se existe uma opção ou não. Como obtenho a lista completa de opções existentes?
VMware® Workstation 16 Pro 16.2.4 build-20089737
Máquina host: Ubuntu 22.04 LTS (atualizado de 20.04 LTS).
Máquina virtual: qualquer.
A tecla Windows-Logo, as teclas ctrl+alr+del, a tecla stamp-r-sist (para as capturas de tela) e não sei quais outras não são enviadas para a máquina virtual, mesmo que tenha foco e esteja cheia tela.
A máquina host reage ao pressionar essas teclas, mas não a VM.
Esse problema surgiu após a atualização do sistema host do Ubuntu 20.04 LTS para o Ubuntu 22.04 LTS.
Por quê? Como resolvo?
Tentei reinstalar o VMware do 0, mas não ajudou.
Referindo-se ao link:
Como separar os ícones do sistema na barra superior
Gostaria de separar os ícones do sistema na barra superior, ou seja wifi, bluetooth, som e bateria, para ter 4 ícones clicáveis diferentes.
Deste tipo, não encontrei uma extensão compatível com o Gnome 42.
Existe alguma compatível com o Gnome 42?
Eu tenho essas 4 pastas em um diretório específico:
example.10 example.42 example.7 example.9
Do terminal shell, quero que essa expansão de chaves
echo example.{1..9}*
retorna apenas um resultado (não importa qual) e não todos eles.
Como faço para obter isso com a expansão do brace?
Por exemplo, eu tenho um diretório:
/A/B/C/D/E/F/G.txt
Não sabendo a priori /E/F/G.txt
, preciso isolar essa parte. Para facilitar o exemplo:
echo '/A/B/C/D/E/F/G.txt' | grep -o '/A/B/C/D'
Mostra:
/A/B/C/D
Mas eu quero:
/E/F/G.txt
Com:
echo '/A/B/C/D/E/F/G.txt' | grep -o -v '/A/B/C/D'
Eu não recebo a saída desejada (a saída não está lá).
Como posso obter a saída desejada usando grep
, ou seja, não mostrando a parte da linha que está nos termos de pesquisa de grep
?
Por exemplo, se eu tiver uma variável de dispositivo existente /dev/sda
, quero verificar se não é o nome de uma partição, mas de todo o disco.
Eu tentei isso:
[[ $(df --output=source "$var" 2> /dev/null | tail -n 1) = 'udev' ]]
mas isso retorna true se o var='/dev/sda'
dispositivo estiver conectado ou se a var='/dev/sda1'
partição não estiver montada.
Portanto, mesmo se você combinar a condição anterior com o seguinte:
if grep -sq "^$var " /proc/mounts; then ...
não seria suficiente dizer que é um nome de disco e não uma partição de disco.
Como posso verificar se a string
é um nome de dispositivo existente e não um nome de partição?
Eu quero criar a partição 2 com um tamanho especificado, enquanto a partição 1 ocupa o resto do disco:
echo -en 'g\nw' | fdisk "$2" #create gpt table
echo -en ',1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
O último comando cria a partição esquerda de 650MB e a direita ocupando o restante do disco, mas como já especifiquei, não é disso que preciso. Para criar a partição direita de 650 MB e a esquerda ocupando o restante do disco, pensei em fazer algo assim:
echo -en ',-1331200\n,,U' | sudo sfdisk "/dev/sda" -W always
com o pensamento de que os valores negativos começaram da direita, mas o -
sinal é completamente ignorado e o comando tem o mesmo efeito que aquele sem o -
sinal.
Como crio uma partição começando do lado direito usando sfdisk
?
Tentei criar um pen drive UEFI que instala o Ubuntu 20.04 LTS Desktop de 64 bits.
A exFAT
partição gpt2
contém toda a imagem do sistema Ubuntu 20.04 LTS.
A FAT32
partição gpt1
contém os seguintes arquivos:
.
├── boot
│ └── grub
│ └── x86_64-efi
│ └── exfat.mod
└── EFI
└── BOOT
├── BOOTX64.EFI
├── grub.cfg
├── grubx64.efi
└── mmx64.efi
5 directories, 5 files
onde o grub.cfg
arquivo contém as seguintes linhas:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
configfile /boot/grub/grub.cfg
Após alterar o Secure Boot
método de Deployed Mode
para , o arquivo Audit Mode
padrão da partição é chamado corretamente a partir do arquivo da partição.
Na verdade, as opções de instalação corretas aparecem.
Após selecionar a opção, faz um loop sem parar e pressionando a tecla percebo que a causa é um erro não especificado: , que se repete muitas vezes.
Qual pode ser a causa desse erro?grub.cfg
exfat
grub.cfg
FAT32
Ubuntu
ESC
stdin: invalid argument
ATUALIZAÇÃO 1: Mesmo desabilitando completamente a inicialização segura, aparece o mesmo erro.
ATUALIZAÇÃO 2: Aguardando algum tempo, apareceu a seguinte mensagem:
Unable to find a medium container a live file system
Attempt interactive netboot from a URL?
yes no (default yes): _
ATUALIZAÇÃO 3:
Descobri que se ao invés de ter a partição em exFAT, eu tiver em NTFS, o problema não aparece. A partir disso, deduzo que, apesar do insmod exfat
comando, passado para a partição com esse sistema de arquivos, o arquivo initrd.lz não suporta o sistema de arquivos exfat. Aliás, também fiz esse outro teste para ter uma confirmação quase total disso:
insmod exfat
search --no-floppy --set=root --fs-uuid 7026-67D5
chainloader /efi/boot/bootx64.efi
boot
e recebi a mensagem de erro:
Failed to find fs: Unsupported
Failed to load image \efi\boot\grubx64.efi: Unsupported
start_image() returned Unsupported
Se houver uma imagem do Windows na partição exfat em vez do Ubuntu, o carregador de inicialização será iniciado corretamente.
Existe uma maneira de implementar o suporte exfat dentro dos arquivos bootx64.efi e initrd.lz?
Eu preciso usar udisksctl
.
Tentei o método clássico /dev/sda?*
já visto na internet:
udisksctl mount -b /dev/sda?*
ou
udisksctl unmount -b /dev/sda?*
/dev/sda?*
no meu caso é equivalente a/dev/sda1 /dev/sda2
mas udisksctl
apenas monta ou desmonta a primeira partição listada /dev/sda1
.
Como posso fazê-lo montar ou desmontar todas as partições de uma só vez?
Eu instalei lightdm + canela no Ubuntu 20.04 Server 64-bit para Raspberry Pi 4.
O ícone de rede systray me mostra desconectado da internet enquanto na realidade estou conectado. Nenhuma das soluções oferecidas pela internet resolveu meu problema. Esse problema pode ser devido a algum pacote ausente, mas não tenho ideia do que seja. Executei os seguintes comandos:
sudo apt update
sudo apt dist-upgrade
sudo reboot
sudo apt install --install-recommends lightdm
sudo apt install --install-recommends cinnamon-desktop-environment
sudo reboot
O Cinnamon funciona, mas agora mostro o ícone da rede o que ele me mostra com uma imagem:
Este link: https://unix.stackexchange.com/questions/509360
Explica como adicionar um programa ao menu Wine:
wine winemenubuilder /path/to/link.lnk
Mas não tenho um arquivo .lnk para meu programa específico.
Como crio o arquivo .lnk?
compgen -c | sort -b | uniq | less
Mostra também funções e palavras-chave (felizmente sem aliases), em vez disso, quero tudo o que não seja palavras-chave, funções ou aliases. Em poucas palavras apenas os comandos.
Se o nome do comando corresponder ao nome da função, nome da palavra-chave ou nome do alias; o nome do comando não deve ser omitido.
Eu mudei o ícone do distintivo de login da canela com:
/usr/share/unity-greeter/custom_cinnamon_badge.png
Gostaria de alterar o badge "ubuntu on wayland" (que está vazio) da mesma forma, por exemplo com um arquivo semelhante a:
/usr/share/unity-greeter/custom_ubuntu_on_wayland_badge.png
ou:
/usr/share/unity-greeter/ubuntu_on_wayland_badge.png
Em outras palavras: como devo chamar o ícone "wayland" para ter certeza de que é visto?
Ubuntu 20.10 Groovy Gorilla.
Se eu tentar executar este comando AIO:
sudo apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends build-essential checkinstall ubuntu-restricted-extras libglib2.0-dev libgtk2.0-dev rar zip unzip p7zip p7zip-full gparted hardinfo lprng gimp geany thonny thunderbird birdtray skypeforlinux putty screen net-tools winehq-stable expect ipscan google-chrome-stable teamviewer
apt retorna:
The following packages have unmet dependencies:
winehq-stable : Depends: wine-stable (= 6.0.0~groovy-1)
E: Unable to correct problems, you have held broken packages.
Se eu tentar instalar apenas esse pacote:
sudo apt -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" install --install-recommends winehq-stable
O erro não ocorre.
Por quê?
Como instalo convenientemente todos os pacotes com um único comando sem obter o erro wineHQ?
ATUALIZAR:
Este é /etc/apt/sources.list:
# deb cdrom:[Ubuntu 20.10 _Groovy Gorilla_ - Release amd64 (20201022)] groovy main restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://archive.ubuntu.com/ubuntu groovy main restricted
deb-src http://archive.ubuntu.com/ubuntu groovy main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://archive.ubuntu.com/ubuntu groovy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu groovy-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu groovy universe
deb-src http://archive.ubuntu.com/ubuntu groovy universe
deb http://archive.ubuntu.com/ubuntu groovy-updates universe
deb-src http://archive.ubuntu.com/ubuntu groovy-updates universe
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://archive.ubuntu.com/ubuntu groovy multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy multiverse
deb http://archive.ubuntu.com/ubuntu groovy-updates multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy-updates multiverse
## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu groovy-backports main restricted universe multiverse
## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu groovy partner
deb-src http://archive.canonical.com/ubuntu groovy partner
deb http://security.ubuntu.com/ubuntu groovy-security main restricted
deb-src http://security.ubuntu.com/ubuntu groovy-security main restricted
deb http://security.ubuntu.com/ubuntu groovy-security universe
deb-src http://security.ubuntu.com/ubuntu groovy-security universe
deb http://security.ubuntu.com/ubuntu groovy-security multiverse
deb-src http://security.ubuntu.com/ubuntu groovy-security multiverse
# This system was installed using small removable media
# (e.g. netinst, live or single CD). The matching "deb cdrom"
# entries were disabled at the end of the installation process.
# For information about how to configure apt package sources,
# see the sources.list(5) manual.
Este é /etc/apt/sources.list.d/angry-ip-scanner.list
deb [trusted=yes] http://ppa.launchpad.net/upubuntu-com/network/ubuntu wily main
deb-src [trusted=yes] http://ppa.launchpad.net/upubuntu-com/network/ubuntu wily main
Este é /etc/apt/sources.list.d/google-chrome.list
deb [signed-by=/usr/share/keyrings/google-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb stable main
deb-src [signed-by=/usr/share/keyrings/google-archive-keyring.gpg] http://dl.google.com/linux/chrome/deb stable main
Este é /etc/apt/sources.list.d/skype-stable.list
deb [signed-by=/usr/share/keyrings/skypeforlinux-archive-keyring.gpg] https://repo.skype.com/deb stable main
deb-src [signed-by=/usr/share/keyrings/skypeforlinux-archive-keyring.gpg] https://repo.skype.com/deb stable main
Este é /etc/apt/sources.list.d/teamviewer.list
deb [signed-by=/usr/share/keyrings/teamviewer-archive-keyring.gpg] http://linux.teamviewer.com/deb stable main
deb-src [signed-by=/usr/share/keyrings/teamviewer-archive-keyring.gpg] http://linux.teamviewer.com/deb stable main
Este é /etc/apt/sources.list.d/winehq.list
deb [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/ubuntu/ groovy main
deb-src [signed-by=/usr/share/keyrings/winehq-archive-keyring.gpg] https://dl.winehq.org/wine-builds/ubuntu/ groovy main
Com este comando e após a escolha da área de trabalho de login:
sudo apt install cinnamon-desktop-environment
Consigo usar a interface do Cinnamon após o login. Mas depois de encerrar a sessão ou reiniciar o computador, a tela antes do login sempre permanece a da interface do gnome.
Como posso definir o Cinnamon antes mesmo de fazer login?