Repositórios locais não funcionam no Pacman 7

Para a tristeza dos usuários do Arch, os repositórios locais não funcionam no Pacman 7, mas felizmente, veja aqui como corrigir isso.

O gerenciador de pacotes Pacman 7.0 chegou recentemente aos repositórios estáveis ​​do Arch. No entanto, se você usa repositórios locais, eles não funciona no Pacman 7.

Na verdade, pra resolver esse problema, você precisa intervir manualmente. Veja a seguir como fazer isso.

Repositórios locais não funcionam no Pacman 7

Repositórios locais não funcionam no Pacman 7
Repositórios locais não funcionam no Pacman 7

O Pacman 7.0, o gerenciador de pacotes para Arch Linux, foi lançado em meados de julho, mas, a partir de hoje, está disponível como uma atualização no repositório estável do Arch.

A nova versão principal traz muitos recursos novos, incluindo a introdução de suporte para download de pacotes como um usuário separado com privilégios reduzidos.

Embora esse aprimoramento melhore a segurança, usuários com repositórios locais podem precisar realizar intervenções manuais para garantir uma operação perfeita. Aqui está tudo sobre isso.

Para aqueles que utilizam repositórios locais, o novo usuário de download pode não ter as permissões de acesso necessárias aos arquivos do repositório. Isso pode impedir que os pacotes sejam baixados corretamente.

Para resolver esse problema, você deve atribuir os arquivos e pastas do repositório ao grupo “alpm” e garantir que o bit executável (“+x”) esteja definido nos diretórios em questão.

O grupo (e o usuário) são configurados automaticamente durante a atualização para o Pacman 7.0, então se você seguir a saída do terminal, verá as seguintes mensagens:
:: Processing package changes...
(1/1) upgrading pacman [#######################################] 100%
warning: /etc/makepkg.conf.d/rust.conf installed as /etc/makepkg.conf.d/rust.conf.pacnew
warning: /etc/pacman.conf installed as /etc/pacman.conf.pacnew
New optional dependencies for pacman
base-devel: required to use makepkg [installed]
:: Running post-transaction hooks...
(1/3) Creating system user accounts...
Creating group 'alpm' with GID 946.
Creating user 'alpm' (Arch Linux Package Management) with UID 946 and GID 946.

Veja como você pode fazer isso:
sudo chown :alpm -R /path/to/local/repo

Este comando altera a propriedade do grupo dos seus arquivos de repositório local para o grupo “alpm”, permitindo que o usuário de download do Pacman os acesse adequadamente.

Além disso, lembre-se de mesclar quaisquer arquivos “.pacnew” (mais sobre eles aqui) gerados durante a atualização.

Esses arquivos contêm novas configurações padrão introduzidas com o Pacman 7.0. Mesclá-los garante que você esteja usando as configurações mais recentes e ajuda a evitar conflitos em potencial.

Você pode verificar facilmente as diferenças entre os dois arquivos usando o comando diff:
diff --color /etc/pacman.conf /etc/pacman.conf.pacnew

Repositórios locais não funcionam no Pacman 7
Repositórios locais não funcionam no Pacman 7

Veja como mesclá-los. Primeiro, crie um arquivo “.diff” que contenha as diferenças entre dois arquivos:
diff -u /etc/pacman.conf /etc/pacman.conf.pacnew > diff.patch

Isso cria um arquivo chamado “diff.patch” com as diferenças em um formato unificado, que é mais legível e adequado para mesclagem.

Abra o arquivo no seu editor de texto de terminal para verificar seu conteúdo. O texto destacado em vermelho é o que será alterado (removido), e o texto em verde é o que será substituído (ou adicionado).

Repositórios locais não funcionam no Pacman 7
Repositórios locais não funcionam no Pacman 7 – Revise o conteúdo do arquivo “diff.patch” para as alterações a serem feitas

Se tudo parecer bem, aplique o patch (diff) ao arquivo “pacman.conf” usando o comando patch:
sudo patch /etc/pacman.conf < diff.patch

Além disso, o Pacman 7.0 também introduz mudanças para melhorar a estabilidade da soma de verificação para repositórios Git que usam arquivos ".gitattributes".

Consequentemente, você pode precisar atualizar as somas de verificação em seus arquivos "PKGBUILD" que têm origem em repositórios Git. Este é um ajuste único para acomodar o novo método de cálculo de soma de verificação.

Apenas um aviso: se você usar o yay para instalar pacotes do AUR, esteja ciente de que após atualizar para o Pacman 7.0, você verá uma mensagem de erro ao tentar usá-lo:
yay: error while loading shared libraries: libalpm.so.14: cannot open shared object file: No such file or directory

Mas não há espaço para preocupações. Basta recompilá-lo e ele deve funcionar perfeitamente novamente.

Finalmente, para esclarecer, se você não estiver trabalhando com repositórios locais, você só precisa mesclar os arquivos ".pacnew". O anúncio oficial do Arch sobre o tópico está aqui.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.