Eu tenho um pacote que está instalado no meu PC como uma dependência de outro pacote.
Eu gostaria de ter o pacote explicitamente instalado, mas sem realmente reinstalar ele, ou baixar qualquer arquivo.
Isso é possível?
atualização:
Não tenho pacotes em cache em /var/cache/pacman/pkg
, que é um dos motivos pelos quais desejo alterar os detalhes do pacote sem reinstalar.
Mesmo se eu tivesse os pacotes em cache, rodar pacman -S significaria que todo o processo de instalação está rodando, o que eu também quero evitar.
Eu encontrei a resposta em Fóruns do Arch Linux
Desde o pacman 3.4 você pode usar
# pacman -D
para modificar apenas o banco de dados. Assim:
# pacman -D --asexplicit <pkgs>
fará com que <pkgs>
explicitamente instalado .
A pacman
manpage descreve melhor este comando.
pacman -S
tem um --asexplicit
sinalizar que deve fazer o que você deseja.
Por exemplo:
> pacman -Qi mutagen
...
Install Reason : Installed as a dependency for another package
> pacman -S --asexplicit mutagen
warning: mutagen-1.20-1 is up to date -- reinstalling
resolving dependencies...
looking for inter-conflicts...
Targets (1): mutagen-1.20-1
Total Download Size: 0.00 MB
Total Installed Size: 0.82 MB
...
> pacman -Qi mutagen
...
Install Reason : Explicitly installed
Você pode ver que nada foi baixado porque já está instalado localmente. Ele apenas inverteu o campo "Razão da instalação".
Pacman tem diferentes --help
operações dependendo da operação (-S
, -R
, etc.). Assim pacman -S --help
lista o --asexplicit
sinalizador como um dos sinalizadores disponíveis. --asdeps
também está disponível.
Para instalar apenas se ainda não estiver instalado, você pode usar o sinalizador --needed:
pacman -S mutagen
pacman -S --needed mutagen clone
Irá ignorar a reinstalação do mutagen se já estiver instalado pelo primeiro comando. E você também receberá uma boa informação sobre isso