Próximo: Invocando guix gc
, Anterior: Pacotes com múltiplas saídas, Acima: Gerenciamento de pacote [Conteúdo][Índice]
guix locate
Há tantos softwares gratuitos por aí que, mais cedo ou mais tarde, você
precisará procurar por pacotes. O comando guix search
que vimos
antes (veja Invocando guix package
) permite pesquisar por palavras-chave:
guix search video editor
Às vezes, você deseja descobrir qual pacote fornece um determinado arquivo,
e é aí que entra guix locate
. Veja como você pode encontrar o
comando ls
:
$ guix locate ls coreutils@9.1 /gnu/store/…-coreutils-9.1/bin/ls
É claro que o comando funciona para qualquer arquivo, não apenas para comandos:
$ guix locate unistr.h icu4c@71.1 /gnu/store/…/include/unicode/unistr.h libunistring@1.0 /gnu/store/…/include/unistr.h
Você também pode especificar padrões de globo com curingas. Por exemplo, aqui está como você procuraria pacotes que fornecem arquivos .service:
$ guix locate -g '*.service' man-db@2.11.1 …/lib/systemd/system/man-db.service wpa-supplicant@2.10 …/system-services/fi.w1.wpa_supplicant1.service
O comando guix locate
depende de um banco de dados que mapeia
nomes de arquivos para nomes de pacotes. Por padrão, ele cria
automaticamente esse banco de dados, caso ele ainda não exista, percorrendo
os pacotes disponíveis localmente, o que pode levar alguns minutos
(dependendo do tamanho do seu armazém e da velocidade do seu dispositivo de
armazenamento).
Nota: Por enquanto,
guix locate
constrói seu banco de dados baseado em conhecimento puramente local – o que significa que você não encontrará pacotes que nunca chegaram ao sue armazém. Eventualmente, ele suportará o download de um banco de dados pré-construído para que você possa encontrar mais pacotes.
Por padrão, guix locate
primeiro tenta procurar um banco de dados
de todo o sistema, geralmente em /var/cache/guix/locate; Se não
existir ou for muito antigo, ele retornará ao banco de dados por usuário,
por padrão em ~/.cache/guix/locate. Em um sistema multiusuário, os
administradores podem querer atualizar periodicamente o banco de dados de
todo o sistema para que todos os usuários possam se beneficiar dele, por
exemplo, configurando package-database-service-type
(veja package-database-service-type
).
A sintaxe geral é:
guix locate [opções…] arquivo…
... onde arquivo é o nome de um arquivo a ser pesquisado (especificamente, o "nome base" do arquivo: arquivos cujos diretórios pais são chamados arquivo não são correspondidos).
As opções disponíveis são as seguintes:
--glob
-g
Interprete arquivo… como padrões de globo—padrões que podem incluir caracteres curinga, como ‘*.scm’ para denotar todos os arquivos que terminam em ‘.scm’.
--stats
Exibir estatísticas do banco de dados.
--update
-u
Atualize o banco de dados dos arquivos.
Por padrão, o banco de dados é atualizado automaticamente quando é muito antigo.
--clear
Limpe o banco de dados e preencha-o novamente.
Esta opção permite começar de novo, garantindo que os dados antigos sejam
removidos do banco de dados, o que também evita ter um banco de dados em
constante crescimento. Por padrão, guix locate
faz isso
automaticamente periodicamente, embora com pouca frequência.
--database=arquivo
Use arquivo como banco de dados, criando-o se necessário.
Por padrão, guix locate
escolhe o banco de dados em
~/.cache/guix ou /var/cache/guix, o que for mais recente.
--method=método
-m método
Use método para selecionar o conjunto de pacotes a serem indexados. Os valores possíveis são:
manifests
Este é o método padrão: ele funciona percorrendo perfis na máquina e gravando os pacotes que encontra – pacotes instalados por você ou por outros usuários da máquina, direta ou indiretamente. É rápido mas você pode perder outros pacotes disponíveis no armazém mas não referenciados por nenhum perfil.
store
Este é um método mais lento, porém mais exaustivo: verifica entre todos os pacotes existentes aqueles que estão disponíveis no armazém e os registra.
Próximo: Invocando guix gc
, Anterior: Pacotes com múltiplas saídas, Acima: Gerenciamento de pacote [Conteúdo][Índice]