Loading AI tools
gerenciador de pacotes em sistema baseados em Arch Da Wikipédia, a enciclopédia livre
Pacman (de Package Manager) é um software gerenciador de pacotes criado por Judd Vinet para o Arch Linux, e é considerado uma de suas principais funcionalidades. O objetivo do pacman é tornar possível o fácil gerenciamento de pacotes tanto dos repositórios oficiais quanto do AUR.
Captura de tela do Pacman | |
Autor | Judd Vinet |
Desenvolvedor | Vários[1] |
Plataforma | Arch Linux e derivados, Arch Hurd, PacBSD |
Modelo do desenvolvimento | Software livre |
Lançamento | 25 de fevereiro de 2002 (22 anos) |
Versão estável | 6.0.2[2] (3 de outubro de 2022 ) |
Idioma(s) | Multilíngue |
Escrito em | C |
Sistema operacional | FreeBSD, GNU Hurd, Linux |
Gênero(s) | Gerenciador de pacotes |
Interface | Interface de linha de comandos |
Licença | GNU General Public License[3] |
Estado do desenvolvimento | Ativo |
Tamanho | 1 MB |
Página oficial | archlinux |
Repositório | gitlab |
O pacman mantém o sistema atualizado sincronizando todos os pacotes com aqueles que estão atualmente nos servidores. Teoricamente, basta um simples comando para atualizar todos os pacotes (e consequentemente todo o sistema) para a última versão disponível.[4]
O programa foi escrito em C e usa o formato .pkg.tar.xz
para os pacotes.
Para configurar o Pacman você só precisa editar o arquivo /etc/pacman.conf
, onde você pode adicionar repositórios e definir várias opções, e até criar seus próprios repositórios.
Os pacotes do Pacman são arquivos tar compactados, que contêm metadados e uma estrutura de diretórios com os arquivos. Os pacotes são construídos com o makepkg, usando scripts do Bash, conhecidos como PKGBUILDs.[5] O seguinte é um PKGBUILD para o pacote patch, incluído na documentação do Pacman como exemplo:[6]
pkgname=patch
pkgver=2.5.4
pkgrel=3
pkgdesc="A utility to apply patch files to original sources"
arch=('i686' 'x86_64')
url="http://www.gnu.org/software/patch/patch.html"
license=('GPL')
groups=('base-devel')
depends=('glibc' 'ed')
source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz)
md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')
build() {
cd "$srcdir"/$pkgname-$pkgver
./configure --prefix=/usr
make
}
package() {
cd "$srcdir"/$pkgname-$pkgver
make prefix="$pkgdir"/usr install
}
Para ver a lista completa de comandos do Pacman, use pacman --help
.
Atualizar o sistema:
$ sudo pacman -Syu
Use a opção -Syyu
para forçar um renovação do banco de dados, mesmo se este estiver atualizado; use -Syuw
para apenas baixar os pacotes sem instalá-los, e para instalá-los mais tarde, use a opção -Su
.
Para reinstalar todos os pacotes nativos:
$ sudo pacman -S $(pacman -Qnq)
Backup, criação de um arquivo contendo os nomes dos pacotes então instalados explicitamente (do repositório oficial):
$ pacman -Qqen > "/pasta de destino/nome-do-arquivo.txt"
Restaurar backup, através do arquivo criado com o comando acima:
$ sudo pacman -S --needed $(cat "/pasta de destino/nome-do-arquivo.txt")
Para remover os pacotes órfãos (dependências não usadas):
$ sudo pacman -Rsn $(pacman -Qtdq)
A opção integrada para remover todos os pacotes em cache que não estão atualmente instalados é:
$ sudo pacman -Sc
Aviso: Só faça isso se tiver certeza de que os pacotes instalados estão estáveis e que um rebaixamento (downgrade) não será necessário, uma vez que irá remover todas as versões antigas da pasta cache, deixando para trás apenas as versões dos pacotes que estão instalados atualmente. Tendo versões mais antigas dos pacotes vem a calhar no caso de futuros problemas, resultante de atualização em um sistema quebrado, e se eles (pacotes) são removidos do cache a única maneira de recuperá-los é através de uma fonte alternativa de pacotes obsoletos, como o Arch Linux Archive.
Também é possível esvaziar completamente a pasta cache com o comando: pacman -Scc
, mas fazê-lo é considerado uma má prática, como, além do acima explicado, também impede de reinstalar um pacote diretamente da pasta de cache em caso de necessidade, forçando o re-download (baixar novamente). Você nunca deve usá-lo a menos que haja uma necessidade "desesperada" de mais espaço em disco.
Baixar um pacote sem instalá-lo:
$ sudo pacman -Sw pacote_nome
Instale um pacote local que não é de um repositório remoto (por exemplo, o pacote é a partir do AUR):
$ sudo pacman -U "/local de destino/pacote_nome-versao.pkg.tar.xz"
Aviso: Tome cuidado ao usar a opção --overwrite
, pois pode causar problemas graves se utilizada indevidamente. É altamente recomendável usar esta opção somente quando há notícia no site oficial do Arch Linux instruindo o usuário a fazê-lo.
Pacman consulta o banco de dados de pacotes local com a opção -Q
; ver:
$ pacman -Q --help
e consulta as bases de dados de sincronização com a opção -S
; ver:
$ pacman -S --help
Pacman pode procurar por pacotes no banco de dados, em busca tanto em nomes e descrições dos pacotes:
$ pacman -Ss string1 string2 ...
Para procurar os pacotes já instalados:
$ pacman -Qs string1 string2 ...
Para exibir informações abrangentes sobre um determinado pacote:
$ pacman -Si pacote_nome
Para os pacotes instalados localmente:
$ pacman -Qi pacote_nome
Passando a opção -ii
também irá exibir a lista de arquivos de backup e seus estados de modificação:
$ pacman -Qii pacote_nome
Para obter uma lista dos arquivos instalados por um pacote:
$ pacman -Ql pacote_nome
Para os pacotes não instalados, utilize pkgfile.
Para verificar a presença dos arquivos instalados por um pacote:
$ pacman -Qk pacote_nome
Passando a opção -kk
irá executar uma verificação mais aprofundada.
Pode-se também consultar o banco de dados para saber a qual pacote um arquivo no sistema de arquivos pertence:
$ pacman -Qo "/pasta de destino/nome_do_arquivo"
Para listar todos os pacotes que já não necessita como dependências (órfãos):
$ pacman -Qdt
Para listar todos os pacotes instalados de forma explícita e não necessários como dependências:
$ pacman -Qet
Para listar uma árvore de dependências de um pacote:
$ pactree pacote_nome
Para listar todos os pacotes, dependendo um instalado pacote, use whoneeds de pkgtools:
$ whoneeds pacote_nome
ou a bandeira reversa para pactree:
$ pactree -r pacote_nome
O gerenciador de pacotes pacman também contém outras ferramentas úteis, como makepkg, pactree, vercmp, e checkupdates. Execute:
$ pacman -Ql pacman | grep /usr/bin/
para ver a lista completa.
Ou:
$ pacman -Ql pacman | awk -F"[/ ]" '/\/usr\/bin/ {print $5}'
Se pacman é interrompido durante a mudança do banco de dados, este arquivo de bloqueio pode ficar obsoleto. Se tiver certeza de que não há instâncias do pacman rodando, então exclua o arquivo de bloqueio:
$ sudo rm /var/lib/pacman/db.lck
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.