Guia do usuário - 6. Usando a ferramenta fink a partir da linha de comando
6.1 Usando a ferramenta fink
A ferramenta fink
usa vários comandos para operar em
pacotes de uma distribuição de códigos abertos. Alguns comandos requerem
o nome de ao menos um pacote mas podem operar em vários nomes de pacotes
de uma vez só. Você pode especificar apenas o nome do pacote (por
exemplo, gimp) ou um nome completamente qualificado com o número da
versão (por exemplo, gimp-1.2.1) ou com os números de versão e revisão
(por exemplo, gimp-1.2.1-3). O Fink irá escolher automaticamente a última
versão e revisão disponível caso não tenham sido especificadas. Outros
comandos possuem opções diferentes.
Apresentamos a seguir a lista de comandos da ferramenta
fink
.
6.2 Opções globais
Há algumas opções que são aplicáveis a todos os comandos do fink. Se
você digitar fink --help
você obterá a lista de opções:
(no contexto da versão fink-0.26.0
)
-h, --help - exibe texto de ajuda.
-q, --quiet - faz com que o fink
exiba menos
informações, o contrário de --verbose. Sobrescreve a opção
Verbose em
fink.conf
.
-V, --version - exibe informações sobre a versão.
-v, --verbose - faz com que o fink
exiba mais informações, o contrário de
--quiet. Sobrescreve a opção Verbose em fink.conf
.
-y, --yes - nas perguntas interativas, responde automaticamente com a resposta padrão.
-K, --keep-root-dir - Faz com que o fink
não
remova o diretório raiz-[nome]-[versão]-[revisão]
em
Buildpath após compilar um
pacote. Corresponde à opção KeepRootDir no arquivo
fink.conf
.
-k, --keep-build-dir - Faz com que o fink
não
remova o diretório [nome]-[versão]-[revisão]
em
Buildpath após compilar um
pacote. Corresponde à opção KeepBuildDir no arquivo
fink.conf
.
-b, --use-binary-dist - faz o download de pacotes
pré-compilados na distribuição de binários caso estejam disponíveis (por
exemplo, para diminuir o tempo de compilação ou utilização do disco).
Note que este modo instrui o fink a baixar a versão procurada caso ela
esteja disponível para download; o modo não faz com que o fink escolha
uma versão qualquer que esteja disponível sob a forma de binário.
Corresponde à opção UseBinaryDist no arquivo
fink.conf
.
--no-use-binary-dist - Não usa pacotes binários
pré-compilados da distribuição de binários, o oposto da opção
--use-binary-dist. Este é o comportamento padrão a menos que haja sido
sobrescrito por UseBinaryDist: true
no arquivo de
configuração fink.conf
.
--build-as-nobody - Usa um usuário sem privilégios administrativos durante o processo de extrair, ajustar, compilar e instalar pacotes. Note que os pacotes compilados com esta opção podem não funcionar corretamente. Esta opção deve ser usada apenas para desenvolvimento de pacotes e depuração de erros.
-m, --maintainer (fink-0.25
e mais recentes)
Executa ações úteis para mantenedores de pacotes: efetua a validação do
arquivo .info
antes de começar a compilação e no
arquivo .deb
após compilar um pacote; faz com que
alguns avisos de tempo de compilação se tornem erros fatais;
(fink-0.26
e mais recentes) executa as suítes de testes
conforme especificado no campo, fazendo com que --tests e
--validate estejam on
.
--tests[=on|off|warn] - (fink-0.26.0
e mais
recentes) Faz com que os campos InfoTest
sejam ativados e as
suítes de testes especificadas via TestScript
sejam
executadas (veja o Manual de
empacotamento para o Fink). Se nenhum argumento for informado
para esta opção ou se o argumento estiver on
, então falhas
nas suítes de testes serão consideradas erros fatais durante a
compilação. Se o argumento for warn
então as falhas serão
tratadas como avisos.
--validate[=on|off|warn] - Faz com que os pacotes sejam
validados durante a compilação. Se nenhum argumento for fornecido a esta
opção ou se o argumento for on
, então falhas de validação
serão consideradas erros fatais durante a compilação. Se o argumento for
warn
, então falhas serão tratadas como avisos.
-l, --log-output - Guarda uma cópia da saída do terminal
durante cada processo de compilação de pacote. Por padrão, o arquivo é
armazenado em
/tmp/fink-build-log_[nome]-[versão]-[revisão]_[data]-[hora]
mas a opção --logfile pode ser usada para especificar um nome
alternativo.
--no-log-output - Não guarda uma cópia da saída do terminal durante a compilação de pacotes, o oposto da opção --log-output. É o padrão.
--logfile=nomedearquivo - Guarda os logs de compilação de
pacotes no arquivo nomedearquivo
no lugar do arquivo
padrão (veja a opção --log-output, que é implicitamente ativada
pela opção --logfile). Você pode usar os códigos de expansão %
para incluir automaticamente informações específicas do pacote. Uma lista
completa de códigos de expansão está disponível no Manual de
empacotamento do Fink; alguns códigos de expansão são:
- %n - nome do pacote
- %v - versão do pacote
- %r - revisão do pacote
-t, --trees=expr - Considera apenas os pacotes em árvores que
casem com expr. O formato de expr é uma lista de especificações
de árvores separadas por vírgula. Árvores listadas em
fink.conf
são comparadas com expr. Somente
aquelas que casarem com pelo menos uma das especificações são
consideradas pelo fink
, na ordem da primeira especificação
com que casarem. Se a opção --trees for usada, todas as árvores
listadas em fink.conf
são incluídas em ordem. Uma
especificação de árvore pode conter o caracter barra (/), sendo que neste
caso é necessário um casamento exato com uma árvore. Por exemplo,
--trees=unstable/main casaria somente com a árvore
unstable/main, enquanto que --trees=unstable casaria
tanto com unstable/main quanto com unstable/crypto. Há
algumas especificações mágicas que podem ser incluídas em
expr:
- status - Inclui pacotes no banco de dados de status do dpkg.
- virtual - Inclui pacotes virtuais que refletem as características do sistema.
Exclusão (ou falha de inclusão) dessas árvores mágicas só são suportadas atualmente para operações que não instalem ou removam pacotes.
-T, --exclude-trees=expr Considera apenas pacotes em árvores que não casem com expr. A sintaxe de expr é a mesma de --trees, incluindo as especificações mágicas. Entretanto, as árvores que casarem são excluídas no lugar de incluídas. Note que árvores que casem tanto com --trees quanto com --exclude-trees são excluídas.
Exemplos de --trees e --exclude-trees:
-
fink --trees=stable,virtual,status install foo
Instala foo como se o
fink
estivesse usando a árvore stable mesmo que unstable esteja habilitada emfink.conf
. -
fink --exclude-trees=local install foo
Instala a versão de foo que estiver no Fink e não a versão que foi modificada localmente.
-
fink --trees=local/main list -i
Lista pacotes modificados localmente que foram instalados.
A maior parte destas opções são autoexplicativas. Várias também podem
ser definidas no arquivo de configuração do
Fink (fink.conf
) caso queira defini-las
permanentemente e não apenas para uma execução do fink
em
particular.
6.3 install
O comando install é usado para instalar pacotes. Ele baixa, configura, compila e instala os pacotes cujo nome você fornecer. Ele também instala automaticamente as dependências necessárias mas irá pedir-lhe confirmação antes de fazê-lo. Exemplo:
fink install nedit Reading package info... Information about 131 packages read. The following additional package will be installed: lesstif Do you want to continue? [Y/n]
O uso da opção --use-binary-dist com
fink install
pode aumentar significativamente a velocidade
de compilação de pacotes complicados.
Apelidos para o comando install: update, enable, activate, use (a maior parte destes por motivos históricos).
6.4 remove
O comando remove elimina pacotes do sistema por intermédio do comando
'dpkg --remove
'. A implementação possui uma falha: ela não
verifica dependências por si própria mas sim delega toda a verificação
para a ferramenta dpkg. Normalmente isto não causa problemas.
O comando remove somente elimina os arquivos do pacote (a
menos dos arquivos de configuração), deixando intacto o arquivo
.deb
contendo o pacote. Isto significa que você pode
reinstalar um pacote mais tarde sem precisar passar novamente pelo
processo de compilação. Se você precisar liberar espaço em disco, você
pode remover os arquivos .deb
na árvore
/opt/sw/fink/dists
.
As opções a seguir podem ser usadas em conjunto com o comando fink remove.
-h,--help - Exibe as opções disponíveis. -r,--recursive - Também remove pacotes que dependam do(s) pacote(s) a ser(em) removido(s) (ou seja, uma solução para a falha mencionada acima).
Apelidos: disable, deactivate, unuse, delete.
6.5 purge
O comando purge elimina pacotes do sistema. Executa o mesmo que o comando remove e também elimina arquivos de configuração.
As seguintes opções são reconhecidas pelo comando:
-h,--help -r,--recursive
6.6 update-all
Este comando atualiza todos os pacotes instalados para que estejam na versão mais recente. Ele não precisa de que você informe uma lista de pacotes, bastando digitar:
fink update-all
A opção --use-binary-dist também é útil para este comando.
6.7 list
Este comando produz uma lista dos pacotes disponíveis, exibindo o status de instalação, a versão mais recente e uma descrição curta. Caso você o execute sem parâmetros, ele listará todos os pacotes disponíveis. Você também pode passar um nome ou padrão do shell e o fink listará todos os pacotes que casarem.
A primeira coluna mostra o status da instalação com os seguintes significados:
não instalado i a versão mais recente está instalada (i) instalado, mas uma versão mais recente está disponível p um pacote virtual provido por um pacote que esteja instalado
A coluna de versão sempre lista a versão mais recente (maior) conhecida para um dado pacote independentemente de qual versão esteja instalada, caso esteja. Para ver todas as versões de um pacote disponíveis para o seu sistema, use o comando dumpinfo.
O comando fink list
também aceita algumas opções:
-h,--help Exibe as informações disponíveis. -t,--tab Exibe a lista em formato delimitado por tabulações, útil para processar a saída através de um script. -i,--installed Exibe apenas os pacotes que estejam instalados. -o,--outdated Exibe apenas os pacotes que estejam desatualizados. -u,--uptodate Exibe apenas os pacotes que estejam atualizados. -n,--notinstalled Exibe apenas os pacotes que não estejam instalados. -s expr,--section=expr Exibe apenas os pacotes cujas seções casem com a expressão regular expr. -m expr,--maintainer=expr Exibe apenas os pacotes cujo mantenedor case com a expressão regular expr. -w=xyz,--width=xyz Define a largura da tela de saída para a qual você deseja formatar a saída. xyz é ou um valor numérico ou auto. auto irá definir a largura com base na largura do terminal. O valor padrão é auto.
Alguns exemplos de uso:
fink list - lista todos os pacotes fink list bash - verifica se o bash está disponível e em que versão fink list --tab --outdated | cut -f 2 - lista apenas os nomes de pacotes desatualizados fink list --section=kde - lista os pacotes na seção kde fink list --maintainer=fink-devel - lista os pacotes sem mantenedores fink --trees=unstable list --maintainer=fink-devel - lista os pacotes sem mantenedores e que estejam na árvore unstable fink list "gnome*" - lista todos os pacotes cujos nomes comecem com 'gnome'
As aspas no último exemplo são necessárias para impedir que o shell interprete o padrão.
6.8 apropos
Este comando se comporta de forma quase idêntica a fink list. A maior diferença é que o fink
apropos
também lê as descrições de pacotes para buscar pacotes. A
segunda diferença é que a string de pesquisa precisa ser fornecida, não
sendo opcional.
fink apropos irc - lista os pacotes para os quais 'irc' aparece no nome ou na descrição. fink apropos -s=kde irc - o mesmo que acima, mas restrito a pacotes que estejam na seção kde.
6.9 describe
Este comando exibe uma descrição do pacote cujo nome você haja fornecido na linha de comando. Note que somente uma pequena parte dos pacotes possui uma descrição.
Apelidos: desc, description, info
6.10 plugins
Lista os plugins (opcionais) disponíveis para o programa
fink
. Atualmente lista os mecanismos de notificação e
algoritmos para detecção de erros nos tarballs com códigos fontes.
6.11 fetch
Baixa os pacotes enumerados mas não os instala. Este comando irá baixar os tarballs mesmo que eles já tenham sido baixados previamente.
As seguintes opções podem ser usadas com o comando
fetch
:
-h,--help Exibe as opções disponíveis. -i,--ignore-restrictive Não baixa pacotes com License: Restrictive. Útil para espelhos porque alguns pacotes com licenças restritivas não permitem que sejam espelhados. -d,--dry-run Exibe apenas informações sobre o(s) arquivo(s) que seria(m) baixado(s) para baixar o pacote; não faça efetivamente o download. -r,--recursive Baixe também pacotes que sejam dependências do(s) pacote(s) a ser(s) baixado(s).
6.12 fetch-all
Baixa todos os arquivos com os códigos fontes dos pacotes. Da mesma forma que fetch, os tarballs são baixados mesmo que já o tenham sido anteriormente.
As seguintes opções podem ser usadas com o comando fink
fetch-all
:
-h,--help -i,--ignore-restrictive -d,--dry-run
6.13 fetch-missing
Baixa todos os arquivos com os códigos fontes de pacotes que estejam faltando. Este comando somente baixará arquivos que não estejam presentes no sistema.
Ass eguintes opções podem ser usadas com o comando fink
fetch-missing
:
-h,--help -i,--ignore-restrictive -d,--dry-run
6.14 build
Compila um pacote mas não o instala. Como de hábito, os tarballs contendo os códigos fontes são baixados caso não possam ser encontrados. O resultado deste comando é um arquivo de pacote .deb instalável que pode ser usado posteriormente para rapidamente instalar o pacote através do comando install. Este comando não fará nada caso o arquivo .deb já exista. Note que as dependências ainda são instaladas e não apenas compiladas.
A opção --use-binary-dist option pode ser usada com este comando.
6.15 rebuild
Compila um pacote (da mesma forma que o comando build) mas ignora e
sobrescreve o arquivo .deb já existente. Se o pacote for instalado, o
recém-criado arquivo .deb também pode ser instalado no sistema através do
dpkg
. Bastante útil durante o desenvolvimento de
pacotes.
6.16 reinstall
Igual ao install porém o pacote será instalado via dpkg
mesmo que ele já esteja instalado. Você pode usar este comando caso tenha
acidentalmente apagado arquivos de um pacote ou mudado arquivos de
configuração e queira ter a configuração inicial de volta.
6.17 configure
Roda novamente o processo de configuração do fink
. Dentre
outros, permite que você mude a configuração dos servidores espelhos ou
de proxy.
Característica nova no fink-0.26.0
: este comando
também permite que você habilite árvores unstable caso queira.
6.18 selfupdate
Este comando automatiza o processo de atualização para uma nova versão
do Fink. Ele verifica o site do Fink para ver se uma nova versão está
disponível. Em seguida, ele baixa as descrições de pacotes e atualiza os
pacotes básicos incluindo o próprio fink
. Este comando pode
fazer a atualização para versões regulares e também configurar seu
diretório /opt/sw/fink/dists
para atualizações diretas
por meio de git ou rsync caso você tenha selecionado uma destas opções na
primeira vez em que o comando for executado. Isto significa que você
poderá portanto acessar as últimas versões de todos os pacotes.
Caso a opção --use-binary-dist esteja habilitada, a lista de pacotes disponíveis na distribuição de binários também será atualizada.
6.19 selfupdate-rsync
Use este comando para fazer com que fink selfupdate
use o
rsync para atualizar sua lsitagem de pacotes.
Esta é a forma recomendada para atualizar o Fink quando se compila a partir do código fonte.
Observação: atualizações via rsync somente atualizam as árvores ativas (por exemplo, se
unstable não estiver habilitada no fink.conf
então a lista
de pacotes instáveis não será atualizada.
6.20 selfupdate-git
Use este comando para fazer com que fink selfupdate
use
acesso Git para atualizar sua listagem de pacotes.
A atualização do Rsync é preferida, exceto para desenvolvedores e pessoas que estão por trás de firewalls que não permitem o rsync.
6.21 index
Reconstrói o cache de pacotes. Normalmente você não precisa executar
este comando manualmente já que o fink
deveria detectar
automaticamente se precisa ser atualizado.
6.22 validate
Este comando executa várias validações em arquivos
.info
e .deb
. Mantenedores de
pacotes devem rodar este comando em suas descrições de pacotes e pacotes
compilados correspondentes antes de os submeter.
As seguintes opções facultativas podem ser usadas:
-h,--help - Exibe as opções disponíveis. -p,--prefix - Simula um prefixo de diretório base alternativo nos arquivos sendo validados. --pedantic, --no-pedantic - Controla a exibição de avisos de formatação. --pedantic é o padrão.
Apelidos: check
6.23 scanpackages
Atualiza o banco de dados de .debs do apt-get
. O padrão é
atualizar todas as árvores mas isto pode ser restrito a uma ou mais
árvores especificadas como argumentos.
6.24 cleanup
Remove arquivos obsoletos e temporários. Este comando pode liberar bastante espaço em disco. Um ou vários modos podem ser especificados:
--debs - Remove arquivos .deb (pacotes de binários compilados) correspondentes às versões de pacotes que não estejam nem descritas por um arquivo de descrição de pacote (.info) nas árvores ativas nem instaladas no momento. --sources,--srcs - Remove códigos fontes (tarballs, etc) que não estejam sendo usadas por algum arquivo de descrição de pacotes (.info) nas árvores ativas no momento. --buildlocks, --bl - Remove pacotes cuja compilação tenha travado. --dpkg-status - Remove do banco de dados de status do dpkg as entradas de pacotes que não estejam instalados. --obsolete-packages - Tenta desinstalar todos os pacotes que estejam obsoletos (característica nova no fink-0.26.0). --all - Todos os modos acima (característica nova no fink-0.26.0).
Caso nenhum modo tenha sido especificado, a ação padrão é --debs
--sources
.
Além disso, as seguintes opções podem ser usadas:
-k,--keep-src - Move arquivos antigos com código fonte para /opt/sw/src/old no lugar de os remover. -d,--dry-run - Imprime os nomes dos arquivos que seriam removidos mas não os remove de fato. -h,--help - Exibe os modos e opções disponíveis.
6.25 dumpinfo
Exibe como o fink
analisa as partes de um arquivo de
pacote .info
. Vários campos e expansões de códigos
serão exibidos conforme as opções abaixo:
-h, --help - Exibe as opções disponíveis. -a, --all - Exibe todos os campos da descrição do pacote. É o modo padrão quando nem --field ou --percent forem informados. -f fieldname, - Mostra os campos na ordem --field=fieldname em que forem listados. -p key, - Mostra os códigos de expansão na --percent=key ordem em que forem listados.
6.26 show-deps
Exibe uma lista legível das dependências, tanto de compilação quanto de execução (instalação), dos pacotes listados.