web-development-kb-pt.site

Faça o pacote explicitamente instalado no pacman

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.

34
Stefan

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.

52
Stefan

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.

6
wafuqua

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

1
totedati