Eu sei que pacman -Su
atualiza todos os pacotes. Mas como posso obter apenas a lista de pacotes que precisam de atualização?
Eu sei que pacman -Su
atualiza todos os pacotes. Mas como posso obter apenas a lista de pacotes que precisam de atualização?
Respostas:
Olhando para a página de manual, algo como
pacman -Syu
para sincronizar o banco de dados até a versão mais recente, seguida por
pacman -Qu
para
-u, --upgrades
Restrict or filter output to packages that are out of date on the
sistema local. (Somente versões de pacote são usadas para encontrar pacotes desatualizados, as substituições não são verificadas aqui.) Essa opção funciona melhor se o banco de dados de sincronização for atualizado usando -Sy.
pacman -Sy
é evitar a instalação de pacotes de diferentes atualizações de banco de dados de pacotes. por exemplo, pacman -S <something>
pode fornecer um pacote e dependências diferentes do que pacman -Sy && pacman -S <something>
. Da documentação deles, no entanto, parece pacman -Sy && pacman -Qu
ser a resposta correta para a pergunta do OP. Apenas certifique-se de executar eventualmente pacman -Su
antes de instalar qualquer pacote.
pacman -Sy
por si só é ruim. Nem diz que é "ruim" ou "perigoso". É apenas afirmar que uma atualização parcial não é suportada e que você deve evitá-la. Em outras palavras, executar pacman -Sy
e, em seguida, executar pacman -S <some package with dependencies>
tem o potencial de quebrar outra coisa que tem as mesmas dependências. Executar algo como pacman -Sy && pacman -S man-pages
apenas obter as últimas páginas de manual seria perfeitamente adequado (as páginas de manual não têm dependências e não são exigidas por outros pacotes).
pacman -Sy
e corre, pacman -S nvidia
é provável que quebre algo.
checkupdates
As datas de verificação do script bash, incluídas no pacote pacman, fornecem uma maneira segura de verificar se há atualizações nos pacotes instalados sem executar uma atualização do sistema ao mesmo tempo.
Como o @Panagiotis mencionado, checkupdates
fornece uma maneira de fazer isso sem a necessidade de root ou atrapalhar o seu /var/lib/pacman
banco de dados. Aqui está uma versão mínima:
TMPPATH="${TMPDIR:-/tmp}/checkup-db-${USER}"
DBPATH="$(pacman-conf DBPath)"
mkdir -p "$TMPPATH"
ln -s "$DBPATH/local" "$TMPPATH" &>/dev/null
fakeroot -- pacman -Sy --dbpath "$TMPPATH" --logfile /dev/null &>/dev/null
pacman -Qu --dbpath "$TMPPATH" 2>/dev/null
Funciona por:
/var/lib/pacman/local
.pacman -Sy
na sua pasta temporária.pacman -Qu
na sua pasta temporária.
pacman -Sy
" (fonte: wiki.archlinux.org/index.php/… )