Como posso encontrar o pacote que contém um programa no Debian? [duplicado]

16

Estou usando um sistema Debian mínimo que não possui o programa top instalado. Tentei instalar o top com sudo apt-get install top , mas top não é um nome de pacote.

Parece que top faz parte de algum outro pacote. Como posso descobrir qual pacote devo instalar para obtê-lo? Mais geralmente, como posso encontrar o pacote que contém um programa?

    
por Liao Zhuodi 23.03.2015 / 14:14

3 respostas

28

A resposta direta é procps . Veja como você pode descobrir isso por si mesmo:

# Install apt-file, which allows you to search
# for the package containing a file
sudo apt-get install apt-file

# Update the package/file mapping database
sudo apt-file update

# Search for "top" at the end of a path
apt-file search --regexp '/top$'

A saída do comando final deve ser algo como isto:

crossfire-maps: /usr/share/games/crossfire/maps/santo_dominion/magara/well/top
crossfire-maps-small: /usr/share/games/crossfire/maps/santo_dominion/magara/well/top
liece: /usr/share/emacs/site-lisp/liece/styles/top
lxpanel: /usr/share/lxpanel/profile/two_panels/panels/top
procps: /usr/bin/top
quilt: /usr/share/quilt/top

Você pode ver que apenas procps fornece um executável em seu PATH padrão, o que indica que pode ser o caminho certo. Você também pode descobrir mais sobre procps para ter certeza de que parece o caminho certo:

$ apt-cache show procps
Package: procps
Version: 1:3.3.3-3

[...]

Description-en: /proc file system utilities
 This package provides command line and full screen utilities for browsing
 procfs, a "pseudo" file system dynamically generated by the kernel to
 provide information about the status of entries in its process table
 (such as whether the process is running, stopped, or a "zombie").
 .
 It contains free, kill, pkill, pgrep, pmap, ps, pwdx, skill, slabtop,
 snice, sysctl, tload, top, uptime, vmstat, w, and watch.
    
por 23.03.2015 / 14:25
3

Você pode pesquisar por itens com apt-cache search ... , embora seja apenas uma correspondência nos nomes e nas descrições dos pacotes, o que às vezes não é suficiente. Nesse caso, usando, por exemplo,

apt-file search top

pode funcionar - ele encontra todos os pacotes que possuem um arquivo com top em seu nome, mas para isso isso é um pouco complicado (inclui setopt , .desktop , etc). Para refinar isso, conforme a resposta de Chris:

apt-file search --regexp 'bin/top$'

Isto irá encontrar pacotes que têm um final de caminho de arquivo ('$' é reg ular exp ression sintaxe significando o fim) em bin/top ; os executáveis estão sempre em um diretório bin ou sbin . Quando você encontra o que procura:

apt-get install whatever

Nesse caso, whatever aparentemente é procps .

    
por 23.03.2015 / 14:25
3

apt-file pesquisa todos os repositórios listados em /etc/apt/sources.list e bancos de dados relacionados, desde que o repo atenda a uma arquitetura de conteúdo% architecture% .gz.

se acreditar que o arquivo de interesse é um nome executável "top", use este regex. '^ / (usr /)? s? bin / top $'

para o repo debian oficial, existe um link na interface da web, existem outras opções de pesquisa.

    
por 23.03.2015 / 15:13