{"id":2703,"date":"2014-02-08T16:53:03","date_gmt":"2014-02-08T15:53:03","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=2703"},"modified":"2023-12-12T17:53:43","modified_gmt":"2023-12-12T16:53:43","slug":"wie-werden-alle-installierten-packages-auf-dem-raspberry-pi-angezeigt-gespeichert-und-gezaehlt","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=2703","title":{"rendered":"Wie werden alle installierten Packages auf dem Raspberry Pi angezeigt, gespeichert und gez\u00e4hlt?"},"content":{"rendered":"<p>Manchmal wird eine Liste aller installierten Packages ben\u00f6tigt. F\u00fcr ein Backup oder so. Es gibt da wie so oft mehrere M\u00f6glichkeiten.<\/p>\n<p>Auf dem Raspberry Pi k\u00f6nnen solche Listen mit dem Packagemanager <a href=\"https:\/\/wiki.ubuntuusers.de\/dpkg\/\" target=\"_blank\" rel=\"noopener noreferrer\">dpkg<\/a> erstellt werden.<\/p>\n<p>Also mit<\/p>\n<p><code>dpkg --get-selections | grep -v deinstall<\/code><\/p>\n<p>werden alle Packages ausgebeben, z.B.<br \/>\n<code><br \/>\n...<br \/>\ncups\t\t\t\t\t\tinstall<br \/>\ncups-bsd\t\t\t\t\tinstall<br \/>\ncups-client\t\t\t\t\tinstall<br \/>\ncups-common\t\t\t\t\tinstall<br \/>\ncups-filters\t\t\t\t\tinstall<br \/>\ncups-pdf\t\t\t\t\tinstall<br \/>\ncups-ppdc\t\t\t\t\tinstall<br \/>\n...<br \/>\n<\/code><\/p>\n<p>um mit <\/p>\n<p><code>dpkg --get-selections | grep -v deinstall > installierte-package.txt<\/code><\/p>\n<p>wird die Liste in die Datei <strong>installierte-packag.txt<\/strong> gespeichert.<\/p>\n<p>Oder wenn die lange Liste eingeschr\u00e4nkt werden soll, z.B. alle Packages mit <strong>cups<\/strong> im Dateiname:<\/p>\n<p><code> dpkg --get-selections | grep cups<\/code><br \/>\nergibt diese Liste:<br \/>\n<code><br \/>\n...<br \/>\nbluez-cups\t\t\t\t\tinstall<br \/>\ncups\t\t\t\t\t\tinstall<br \/>\ncups-bsd\t\t\t\t\tinstall<br \/>\ncups-client\t\t\t\t\tinstall<br \/>\ncups-common\t\t\t\t\tinstall<br \/>\ncups-filters\t\t\t\t\tinstall<br \/>\ncups-pdf\t\t\t\t\tinstall<br \/>\ncups-ppdc\t\t\t\t\tinstall<br \/>\nghostscript-cups\t\t\t\tinstall<br \/>\nlibcups2:armhf\t\t\t\t\tinstall<br \/>\nlibcupscgi1:armhf\t\t\t\tinstall<br \/>\nlibcupsdriver1:armhf\t\t\t\tinstall<br \/>\nlibcupsfilters1:armhf\t\t\t\tinstall<br \/>\nlibcupsimage2:armhf\t\t\t\tinstall<br \/>\nlibcupsmime1:armhf\t\t\t\tinstall<br \/>\nlibcup  dc1:armhf\t\t\t\tinstall<br \/>\nprinter-driver-hpcups\t\t\t\tinstall<br \/>\npython-cups\t\t\t\t\tinstall<br \/>\n...<br \/>\n<\/code><\/p>\n<p>Soll das <strong>install<\/strong> nicht erscheinen, dann mit dem Stream-Editor <a href=\"https:\/\/wiki.ubuntuusers.de\/sed\/\" target=\"_blank\" rel=\"noopener noreferrer\">sed<\/a> z.B. <\/p>\n<p><code>dpkg --get-selections | sed 's:install$::' > installierte-package-nur-name.txt<\/code><\/p>\n<p>Wer eine noch ausf\u00fchrlicher Liste mit Beschreibung ben\u00f6tigt, kann diese mit<\/p>\n<p><code>dpkg --list<\/code> erzeugen. Z.b.:<\/p>\n<p><code>...<br \/>\nii  cups                      1.5.3-5+deb7u1    armhf             Common UNIX Printing System(tm) - server<br \/>\nii  cups-bsd                  1.5.3-5+deb7u1    armhf             Common UNIX Printing System(tm) - BSD commands<br \/>\nii  cups-client               1.5.3-5+deb7u1    armhf             Common UNIX Printing System(tm) - client programs (SysV<br \/>\nii  cups-common               1.5.3-5+deb7u1    all               Common UNIX Printing System(tm) - common files<br \/>\nii  cups-filters              1.0.18-2.1        armhf             OpenPrinting CUPS Filters<br \/>\nii  cups-pdf                  2.6.1-6           armhf             PDF writer backend for CUPS<br \/>\nii  cups-ppdc                 1.5.3-5+deb7u1    armhf             Common UNIX Printing System(tm) - PPD manipulation util<br \/>\nii  curl                      7.26.0-1+wheezy8  armhf             command line tool for transferring data with URL syntax<br \/>\n...<\/code><\/p>\n<p>Die ersten beiden Zeichen in jeder Zeile geben den Paketstatus an ( ii bedeutet installiert ).<\/p>\n<p>Wer also nur die installierten haben m\u00f6chte, muss<\/p>\n<p><code>dpkg -l | grep '^ii'<\/code><\/p>\n<p>verwenden. Wenn noch mehr Kontrolle \u00fcber die Liste braucht, kann auch <strong>dpkg-query<\/strong> verwenden:<\/p>\n<p><code>dpkg-query -W -f '${status} ${package} ${version} \\n' | sed -n 's\/install ok installed \/\/p'<\/code><br \/>\nz.B.:<br \/>\n<code><br \/>\n...<br \/>\ncups 1.5.3-5+deb7u1<br \/>\ncups-bsd 1.5.3-5+deb7u1<br \/>\ncups-client 1.5.3-5+deb7u1<br \/>\ncups-common 1.5.3-5+deb7u1<br \/>\ncups-filters 1.0.18-2.1<br \/>\ncups-pdf 2.6.1-6<br \/>\ncups-ppdc 1.5.3-5+deb7u1<br \/>\n...<br \/>\n<\/code><br \/>\nWenn ein Debian System mit gleichen Package und Versionsnummern erstellt werden soll, kann man eine Liste mit<br \/>\n<code><br \/>\naptitude -q -F \"%?p=%?V %M\" --disable-columns search \\~i<br \/>\n<\/code><br \/>\nin folgendem Format erzeugen: <\/p>\n<p>Package Name=Version und A (wenn automatisch installiert)<br \/>\nZ.b.:<br \/>\n<code>...<br \/>\ncups=1.5.3-5+deb7u1<br \/>\ncups-bsd=1.5.3-5+deb7u1 A<br \/>\ncups-client=1.5.3-5+deb7u1 A<br \/>\ncups-common=1.5.3-5+deb7u1 A<br \/>\ncups-filters=1.0.18-2.1 A<br \/>\ncups-pdf=2.6.1-6<br \/>\ncups-ppdc=1.5.3-5+deb7u1 A<br \/>\n...<\/code><\/p>\n<p>Die Liste kann dann wie in <a href=\"https:\/\/web.archive.org\/web\/20190722124438\/https:\/\/debian-administration.org\/article\/669\/\" title=\"debian\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/www.debian-administration.org\/article\/669\/<\/a> beschrieben, wieder geladen werden mit:<br \/>\n(ungetestet)<br \/>\n<code><br \/>\n$ cat restore-package-versions<br \/>\n#!\/bin\/sh<br \/>\nlist=$1<br \/>\nshift<br \/>\naptitude -q -R --schedule-only install $(awk < $list '{print $1}')\naptitude -q -R --schedule-only markauto $(awk < $list '$2==\"A\" {split($1,A,\"=\");print A[1]}')\n<\/code><\/p>\n<p>Wer nur die <strong>Anzahl<\/strong> der installierten Package ermitteln m\u00f6chte, kann die Ausgabe mit <strong>grep<\/strong> z\u00e4hlen (-c count):<\/p>\n<p><code>dpkg -l | grep '^ii' -c<\/code><\/p>\n<p>bei mir: <strong>910<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Manchmal wird eine Liste aller installierten Packages ben\u00f6tigt. F\u00fcr ein Backup oder so. Es gibt da wie so oft mehrere M\u00f6glichkeiten. Auf dem Raspberry Pi k\u00f6nnen solche Listen mit dem Packagemanager dpkg erstellt werden. Also mit dpkg &#8211;get-selections | grep -v deinstall werden alle Packages ausgebeben, z.B. &#8230; cups install cups-bsd install cups-client install cups-common &hellip; <\/p>\n<p class=\"link-more\"><a href=\"http:\/\/blog.wenzlaff.de\/?p=2703\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eWie werden alle installierten Packages auf dem Raspberry Pi angezeigt, gespeichert und gez\u00e4hlt?\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[808,1023],"tags":[1297,1298,1223,1299,1296,1025,2190,1030,1295,267],"class_list":["post-2703","post","type-post","status-publish","format-standard","hentry","category-linux-2","category-raspberry-pi","tag-alle-packages-anzeigen","tag-anzahl","tag-apt-get","tag-gezaehlt","tag-list-package","tag-pi","tag-raspberry-pi","tag-rpi","tag-sed","tag-version"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/2703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2703"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/2703\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2703"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}