Bagaimana cara mengetahui apakah paket tertentu diinstal pada Debian?

9

Saya bekerja dengan Raspberry Pi B + dan Raspbian 5/5/2015 dan beberapa pemandu yang berusia beberapa tahun. Saya punya HDD NTFS eksternal yang terhubung ke Pi. Karena usia artikel, praktik umum telah berubah, dan ternyata paket dan fitur serta fungsi tertentu sekarang sudah ada di dalam dan / atau otomatis.

Sebagai contoh, saya menemukan bahwa Raspbian akan menangani automounting drive / volume NTFS jika Anda baru saja menginstal ntfs-3g. Semua instruksi dan panduan yang dapat saya temukan (IRC, forum raspberry pi, dan Linux dude, saya tahu) semuanya berjalan sangat teknis melakukan yang-tahu-apa ke sistem saya untuk mencoba membantu saya, ketika pada kenyataannya kami semua tersandung fitur otomatis bahwa tidak ada yang tahu tentang atau berpikir untuk memeriksanya. Saya telah menginstal Raspbian segar ke kartu SD baru dan sejauh ini hanya menyalakan SSH, memperbarui apt-get, dan menginstal ntfs-3g.

Inilah artikel yang saya gunakan saat ini: http://www.howtogeek.com/139433/how-to-turn-a-raspberry-pi-into-a-low-power-network-storage-device/?PageSpeed = tanpa naskah

Langkah saya selanjutnya adalah membuat Samba aktif dan berjalan. Ya, saya tahu orang Linux membenci Windows, tapi saya orang Windows, jadi sampai saya tahu cukup banyak tentang Linux agar sistem Linux menjadi fallback saya, mesin Windows adalah fallback saya. Akhirnya Raspberry Pi ini akan mendapatkan drive multi-TB, meskipun untuk saat ini hanya beberapa GB; itulah sebabnya perlu NTFS.

Saya ingin memeriksa apakah Samba diinstal, karena langkah selanjutnya dalam instruksi saya memberi tahu saya cara menginstal dan mengkonfigurasinya. Saya sudah mencoba beberapa perintah dan saya tidak yakin apa yang harus dilakukan dengan hasil atau cara menggunakannya. Saya mencari di sini dan rincian teknis di atas kemampuan saya dan saya tidak berpikir mereka mengatasi kebutuhan saya yang tampaknya sederhana untuk mengetahui apakah suatu paket diinstal atau tidak.

Saya mencoba:

apt-cache dump

ini memberi saya terlalu banyak data. Ini bergulir ke bawah selama beberapa menit. Saya mendapatkan ini dari The Raspberry Pi Handbook 3rd Edition (Tautan - Amazon)

Saya mencoba

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:

tapi saya tidak yakin apa yang membuat hasil. Saya tidak tahu apakah itu akan mendapatkan server dan mendapatkan informasi, atau menariknya dari sistem saya.

Saya mencoba :

dpkg --get-selections

yang saya dapatkan dari sini: http://www.howtogeek.com/howto/linux/show-the-list-of-installed-packages-on-ubuntu-or-debian/?PageSpeed=noscript tapi saya rasa saya mengalami masalah yang sama. Sepertinya sintaks telah berubah sejak 2007. File halaman manual / bantuan sepertinya membuat saya percaya bahwa perintah itu harus bekerja

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

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

tapi saya mendapatkan kesalahan:

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

Saya menemukan beberapa pertanyaan di sini yang terkait, tetapi jangan beri saya apa yang saya cari. Saya tertarik hanya mengetahui apa yang diinstal, tetapi saya kira itu adalah topik untuk pertanyaan lain.

YetAnotherRandomUser
sumber
Apakah Raspban dan Debian dapat dipertukarkan? Saya pikir tidak karena Raspbian khusus untuk Raspberry Pi dan Debian mungkin dapat berjalan pada beberapa platform perangkat keras.
YetAnotherRandomUser
Raspbian dan Debian tidak dapat dipertukarkan, tetapi Raspbian adalah turunan Debian dengan mekanisme manajemen paket yang sama. Jawaban di bawah ini menggunakan perintah seperti apt-cache dan dpkg berlaku untuk keduanya (dan untuk Ubuntu, Linux Mint, dll.)
Benjamin Staton

Jawaban:

10

apt-cache showpkgmemperlihatkan informasi terperinci tentang paket yang berpotensi diinstal. Itu menunjukkan apakah paket diinstal, jenis, tetapi tidak dengan cara yang sangat mudah dibaca:

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

Jika paket diinstal, Anda akan melihat (/var/lib/dpkg/status)di akhir baris. Namun, ini tidak sepenuhnya dapat diandalkan, karena Anda juga akan melihat indikasi ini jika paket diketahui oleh sistem Anda tetapi tidak sepenuhnya diinstal, misalnya jika itu dalam keadaan "paket dihapus tetapi file konfigurasi yang tersisa".

apt-cacheSubperintah yang lebih bermanfaat adalah apt-cache policy. Ini jelas menunjukkan versi yang diinstal (jika ada) dan versi yang tersedia. Sebagai contoh, inilah output dari mesin yang telah sambadiinstal tetapi belum 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

Atau, Anda dapat menggunakan dpkgperintah untuk mendapatkan informasi tentang sistem Anda saat ini. APT adalah perangkat lunak yang mengelola pengunduhan paket, analisis dependensi, dll. Dpkg adalah perangkat lunak tingkat rendah yang melakukan instalasi sebenarnya dari file paket.

dpkg -l samba

Menunjukkan ini garis dimulai dengan ijika paket tersebut terinstal, dan garis yang diawali dengan uatau patau tidak sama sekali jika paket tersebut tidak diinstal.

$ 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-queryadalah dpkgsubperintah yang mengembalikan informasi tentang paket database.)

Perhatikan bahwa jika Anda hanya ingin memastikan bahwa suatu paket diinstal, Anda dapat menjalankannya

apt-get install samba

Ini tidak akan melakukan apa pun jika versi terbaru dari paket yang tersedia di distribusi Anda sudah diinstal. Ini akan menginstal paket jika belum diinstal, dan akan memutakhirkannya jika Anda memiliki versi yang lebih lama.

Gilles 'SANGAT berhenti menjadi jahat'
sumber
5
dpkg -l | grep -e package1 -e package2 ....

Akan mencantumkan paket yang Anda minati dengan cara penginstalan pemasangannya saat ini. Outputnya akan seperti ini

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

2 karakter pertama memberi tahu status - ii di sini berarti I - ditandai untuk instalasi II - berhasil diinstal

Ada kode status lain seperti r artinya ditandai untuk dihapus, p artinya ditandai untuk membersihkan dll.

Balachandran Sivakumar
sumber
+1 untuk daya plus kesederhanaan, dan memungkinkan kecocokan sebagian jika Anda tidak tahu nama paket yang tepat. Sebagian dalam dpkg -l | grep php mungkin mengembalikan php5, php5-cli, php5-common, dll.
Benjamin Staton
dpkg-l apache2 | grep '`^ ii'
Corey Goldberg
1

dpkg -l $ PACKAGENAME

cukup. Dua karakter pertama dalam barisan akan menunjukkan status paket

Marco d'Itri
sumber
khususnya, statusnya iiberarti diinstal
Corey Goldberg
1
aptitude show foo

akan menunjukkan status pakage

root @ srv: # aptitude show python-jmespath
Paket: python-jmespath
Versi: 0.9.0-2
Status: tidak dipasang
Prioritas: opsional
Bagian: python
Maintainer: Tim Modul Debian Python [email protected]
Arsitektur: semua
Ukuran Terkompresi: 97,3 k
Tergantung: python (> = 2.7)
Deskripsi: Ekspresi Pencocokan JSON (Python 2)
 JMESPath adalah pustaka python yang memungkinkan Anda menentukan secara deklaratif cara mengekstrak elemen dari dokumen JSON.

 Paket ini berisi modul untuk Python 2.
Beranda: https://github.com/boto/jmespath


root @ cx-ops02: #
valch85
sumber
0

Saya harap Anda bisa menyelesaikan masalah ini.

  • dpkg --help untuk bantuan tentang menginstal dan menghapus paket [*];

  • gunakan aptatau aptitudeuntuk manajemen paket yang mudah digunakan;

  • ketik dpkg -Dhelpuntuk daftar dpkgnilai flag debug;
  • ketik dpkg --force-helpuntuk daftar opsi pemaksaan;
  • ketik dpkg-deb --helpbantuan untuk memanipulasi *.debfile;

Opsi bertanda [*] menghasilkan banyak output - pipa melalui lessatau more!

مالك القلب
sumber