Como descobrir se um pacote específico está instalado no Debian?


9

Estou trabalhando com um Raspberry Pi B + e Raspbian 5/5/2015 e alguns guias com alguns anos de idade. Eu tenho um disco rígido NTFS externo conectado ao Pi. Devido à idade do (s) artigo (s), as práticas comuns foram alteradas e agora alguns pacotes, recursos e funções estão incorporados e / ou automáticos.

Por exemplo, descobri que o Raspbian tratará da montagem automática de uma unidade / volume NTFS se você instalar o ntfs-3g. Todas as instruções e orientações que pude encontrar (IRC, fórum raspberry pi e um cara Linux que eu conheço) foram extremamente técnicas, fazendo quem sabe o que com o meu sistema para tentar me ajudar, quando na realidade estávamos todos tropeçando em recursos automáticos que ninguém sabia ou pensou em verificar. Desde então, instalei o Raspbian atualizado em um novo cartão SD e, até agora, ativei o SSH, atualizei o apt-get e instalei o ntfs-3g.

Este é o artigo que eu estou usando agora: http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed = noscript

Meu próximo passo é colocar o Samba em funcionamento. Sim, eu sei que as pessoas do Linux odeiam o Windows, mas eu sou um cara do Windows, então, até que eu saiba o suficiente sobre o Linux para um sistema Linux ser o meu substituto, as máquinas Windows são o meu substituto. Eventualmente, esse Raspberry Pi terá uma unidade multi-TB, mas por enquanto são apenas alguns GB; é por isso que precisa ser NTFS.

Gostaria de verificar se o Samba está instalado, pois o próximo passo nas minhas instruções me diz como instalá-lo e configurá-lo. Eu tentei alguns comandos e não sei o que fazer com os resultados ou como usá-los. Pesquisei aqui e os detalhes técnicos estão acima dos meus recursos e não acho que eles atendam à minha aparentemente simples necessidade de descobrir se um pacote está instalado ou não.

Eu tentei:

apt-cache dump

isso me deu muitos dados. Ele rolou para baixo por alguns minutos. Comprei isso no Raspberry Pi Handbook 3rd Edition (Link - Amazon)

eu tentei

apt-cache showpkg samba
Package: samba
Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_                                  wheezy_main_binary-armhf_Packages)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_d                                  ists_wheezy_main_binary-armhf_Packages
                  MD5: 0122ac62ef5f4ae21eb2e195eb45ad1d


Reverse Depends:
  winbind,samba 2.2.3-2
  task-file-server,samba
  swat,samba 2:3.6.6-6+deb7u5
  smbclient,samba 2.999+3.0.alpha21-4
  samba4-common-bin,samba 2:3.3.0~rc2-5
  samba4,samba 2:3.3.0~rc2-5
  samba-dbg,samba 2:3.6.6-6+deb7u5
  samba-common-bin,samba 3.0.20b-1
  samba-common,samba 3.0.20b-1
  qtsmbstatus-server,samba
  qemu-system,samba
  nautilus-share,samba 3.0.27a
  libwbclient0,samba 2:3.4.1
  libpam-winbind,samba 2.2.3-2
  libpam-smbpass,samba
  libnss-winbind,samba 2.2.3-2
  gadmin-samba,samba
  education-main-server,samba
  dpsyco-samba,samba
Dependencies:
2:3.6.6-6+deb7u5 - samba-common (5 2:3.6.6-6+deb7u5) libwbclient0 (5 2:3.6.6-6+d                                  eb7u5) libacl1 (2 2.2.51-8) libattr1 (2 1:2.4.46-8) libc6 (2 2.13-28) libcap2 (2                                   2.10) libcomerr2 (2 1.01) libcups2 (2 1.4.0) libgcc1 (2 1:4.4.0) libgssapi-krb5                                  -2 (2 1.10+dfsg~) libk5crypto3 (2 1.6.dfsg.2) libkrb5-3 (2 1.10+dfsg~) libldap-2                                  .4-2 (2 2.4.7) libpam0g (2 0.99.7.1) libpopt0 (2 1.14) libtalloc2 (2 2.0.4~git20                                  101213) libtdb1 (2 1.2.7+git20101214) zlib1g (2 1:1.1.4) debconf (18 0.5) debcon                                  f-2.0 (0 (null)) libpam-runtime (2 1.0.1-11) libpam-modules (0 (null)) lsb-base                                   (2 3.2-13) procps (0 (null)) update-inetd (0 (null)) adduser (0 (null)) dpkg (2                                   1.15.7.2) openbsd-inetd (16 (null)) inet-superserver (0 (null)) smbldap-tools (0                                   (null)) ldb-tools (0 (null)) ctdb (0 (null)) logrotate (0 (null)) tdb-tools (0                                   (null)) samba4 (3 4.0.0~alpha6-2) samba-common (1 2.0.5a-2)
Provides:
2:3.6.6-6+deb7u5 -
Reverse Provides:
pi@raspberrypi ~ $ apt-cache showpkg ntfs-3g
Package: ntfs-3g
Versions:
1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages) (/var/lib/dpkg/status)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: b2df024e8627b5d253b85f35263376ef


Reverse Depends:
  udisks,ntfs-3g
  ntfsprogs,ntfs-3g
  ntfs-config,ntfs-3g
  ntfs-3g-dev,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2
  ntfs-3g-dbg,ntfs-3g 1:2012.1.15AR.5-2.1+deb7u2
  kvpm,ntfs-3g
  fsarchiver,ntfs-3g
Dependencies:
1:2012.1.15AR.5-2.1+deb7u2 - debconf (18 0.5) debconf-2.0 (0 (null)) libc6 (2 2.13-28) libfuse2 (2 2.8.1) libgcc1 (2 1:4.4.0) libgcrypt11 (2 1.4.5) libgnutls26 (2 2.12.17-0) multiarch-support (0 (null)) fuse (0 (null)) libntfs-3g75 (0 (null)) ntfsprogs (3 1:2011.10.9AR.1-3~) libntfs-3g75 (0 (null)) ntfsprogs (0 (null))
Provides:
1:2012.1.15AR.5-2.1+deb7u2 -
Reverse Provides:
pi@raspberrypi ~ $ apt-cache showpkg ntfsprogs
Package: ntfsprogs
Versions:
1:2012.1.15AR.5-2.1+deb7u2 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)
 Description Language:
                 File: /var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages
                  MD5: 95f41af9cf1d0b5b66afb7d2a9e7c75d


Reverse Depends:
  partitionmanager,ntfsprogs
  ntfs-3g,ntfsprogs
  ntfs-3g,ntfsprogs 1:2011.10.9AR.1-3~
  gparted,ntfsprogs
  fsarchiver,ntfsprogs
  fai-setup-storage,ntfsprogs
Dependencies:
1:2012.1.15AR.5-2.1+deb7u2 - ntfs-3g (0 (null))
Provides:
1:2012.1.15AR.5-2.1+deb7u2 -
Reverse Provides:

mas não sei o que fazer com os resultados. Não sei dizer se isso irá obter os servidores e obter informações ou extraí-las do meu sistema.

Eu tentei :

dpkg --get-selections

que obtive daqui: http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript, mas acho que estou correndo para o mesmo problema. Parece que a sintaxe mudou desde 2007. A página de manual / arquivo de ajuda parece me levar a acreditar que o comando deve funcionar

Usage: dpkg [<option> ...] <command>

--get-selections [<pattern> ...] Get list of selections to stdout.

mas eu recebo um erro:

dpkg –get-selections samba
dpkg: error: need an action option

Encontrei algumas wuestions aqui relacionadas, mas não me dê o que estou procurando. Estou interessado em saber o que está instalado, mas acho que esse é um tópico para outra pergunta.


Raspban e Debian são intercambiáveis? Eu acho que não, já que o Raspbian é específico para o Raspberry Pi e o Debian provavelmente pode ser executado em várias plataformas de hardware.
YetAnotherRandomUser

Raspbian e Debian não são intercambiáveis, mas Raspbian é um derivado do Debian com os mesmos mecanismos de gerenciamento de pacotes. As respostas abaixo usando comandos como apt-cache e dpkg se aplicam igualmente a ambos (e Ubuntu, o Linux Mint, etc.)
Benjamin Staton

Respostas:


10

apt-cache showpkgmostra informações detalhadas sobre pacotes potencialmente instaláveis. Indica se o pacote está instalado, mais ou menos, mas não de uma maneira muito legível:

Versions:
2:3.6.6-6+deb7u5 (/var/lib/apt/lists/mirrordirector.raspbian.org_raspbian_dists_wheezy_main_binary-armhf_Packages)

Se o pacote estiver instalado, você verá (/var/lib/dpkg/status)no final da linha. No entanto, isso não é totalmente confiável, porque você também veria essa indicação se o pacote fosse conhecido pelo seu sistema, mas não estivesse totalmente instalado, por exemplo, se estivesse no estado “pacote desinstalado, mas os arquivos de configuração restantes”.

Um apt-cachesubcomando mais útil é apt-cache policy. Mostra claramente a versão instalada (se houver) e as versões disponíveis. Por exemplo, aqui está a saída de uma máquina que sambainstalou, mas não samba-dev:

samba:
  Installed: 2:4.1.17+dfsg-2
  Candidate: 2:4.1.17+dfsg-2
  Version table:
 *** 2:4.1.17+dfsg-2 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
        100 /var/lib/dpkg/status
samba-dev:
  Installed: (none)
  Candidate: 2:4.1.17+dfsg-2
  Version table:
     2:4.1.17+dfsg-2 0
        500 http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages

Como alternativa, você pode usar o dpkgcomando para obter informações sobre o seu sistema atual. O APT é o software que gerencia o download de pacotes, a análise de dependências etc. O Dpkg é o software de baixo nível que executa a instalação real de um arquivo de pacote.

dpkg -l samba

Isso mostra uma linha que começa com ise o pacote está instalado e uma linha que começa com uou pou nada se o pacote não estiver instalado.

$ dpkg -l samba samba-dev
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  samba          2:4.1.17+dfs amd64        SMB/CIFS file, print, and login s
dpkg-query: no packages found matching samba-dev

( dpkg-queryé o dpkgsubcomando que retorna informações sobre o banco de dados do pacote.)

Observe que, se você quiser apenas garantir que um pacote esteja instalado, basta executar

apt-get install samba

Isso não fará nada se a versão mais recente do pacote disponível em sua distribuição já estiver instalada. Ele instalará o pacote se ainda não estiver instalado e o atualizará se você tiver uma versão mais antiga.


5
dpkg -l | grep -e package1 -e package2 ....

Irá listar os pacotes que você está interessado com seus status de instalação atuais. A saída será algo como isto

bala@bala-laptop:~$ dpkg -l | grep apache2
ii  apache2                                2.4.10-10                            amd64        Apache HTTP Server

Os 2 primeiros caracteres informam o status - ii aqui significa Primeiro i - marcado para instalação Segundo i - Instalado com sucesso

Existem outros códigos de status, como significado r marcado para remoção, significado p marcado para remoção etc.


+1 para poder mais simplicidade e permitir correspondências parciais se você não souber o nome exato do pacote. Parcial em que dpkg -l | php grep pode retornar php5, php5-cli, php5-comum, etc.
Benjamin Staton

dpkg -l apache2 | grep '' ^ ii'
Corey Goldberg

1

dpkg -l $ PACKAGENAME

basta. Os dois primeiros caracteres da linha mostrarão o status do pacote


especificamente, o status do iimeio que está instalado
Corey Goldberg

1
aptitude show foo

mostrará o status do pakage

root @ srv: # aptitude mostra python-jmespath
Pacote: python-jmespath
Versão: 0.9.0-2
Estado: não instalado
Prioridade: opcional
Seção: python
Mantenedor: Equipe de Módulos Debian Python python-modules-team@lists.alioth.debian.org
Arquitetura: tudo
Tamanho não compactado: 97,3 k
Depende: python (> = 2.7)
Descrição: Expressões de correspondência JSON (Python 2)
 JMESPath é uma biblioteca python que permite especificar declarativamente como extrair elementos de um documento JSON.

 Este pacote contém o módulo para Python 2.
Página inicial: https://github.com/boto/jmespath


root @ cx-ops02: #

0

Espero que você possa resolver esse problema.

  • dpkg --help para obter ajuda sobre como instalar e desinstalar pacotes [*];

  • usar aptou aptitudepara gerenciamento de pacotes fácil de usar;

  • digite dpkg -Dhelppara uma lista de dpkgvalores de sinalizador de depuração;
  • digite dpkg --force-helppara uma lista de opções de forçar;
  • digite dpkg-deb --helppara obter ajuda sobre como manipular *.debarquivos;

As opções marcadas com [*] produzem bastante saída - canalize-a através lessou more!

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.