Eu sei que pacman -Suatualiza todos os pacotes. Mas como posso obter apenas a lista de pacotes que precisam de atualização?
Eu sei que pacman -Suatualiza 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 thesistema 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 -Quser a resposta correta para a pergunta do OP. Apenas certifique-se de executar eventualmente pacman -Suantes de instalar qualquer pacote.
pacman -Sypor 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-pagesapenas 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 -Sye 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, checkupdatesfornece uma maneira de fazer isso sem a necessidade de root ou atrapalhar o seu /var/lib/pacmanbanco 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 -Syna sua pasta temporária.pacman -Quna sua pasta temporária.
pacman -Sy" (fonte: wiki.archlinux.org/index.php/… )