En son kurulan paketlerin bir listesini almak mümkün mü?


157

Apt-get aracılığıyla en son yüklenen paketlerin bir listesini almak mümkün müdür?



1
Şimdi, sadece biri bana daha önce kaldırmadığım el ile kurulmuş paketleri nasıl listeleyeceğimi söyleseydi . Çek, Linux.
Aleksandr Dubinsky

1
@AleksandrDubinsky apt-mark showmanual | lessyapmıyor mu?
GKFX

@GKFX Yakın zamanda kurulan paketlerin içeriğini kastediyorum.
Aleksandr Dubinsky

@AleksandrDubinsky Kullanılacak olurdu comm -12 a bile asıralı bir kopyası apt-mark showmanualve başağıdaki yanıtları birinden bir sıralı listenin.
GKFX

Yanıtlar:


180

Herhangi bir yöntemle yüklenmiş son yüklenen paketleri listeleme komutu ( apt-get, Software Center ve diğerleri):

grep " install " /var/log/dpkg.log

Örnek çıktı:

2010-12-08 15:48:14 install python-testtools <none> 0.9.2-1
2010-12-08 15:48:16 install quickly-widgets <none> 10.09
2010-12-08 22:21:31 install libobasis3.3-sdk <none> 3.3.0-17
2010-12-09 12:00:24 install mc <none> 3:4.7.0.6-1
2010-12-09 23:32:06 install oggconvert <none> 0.3.3-1ubuntu1
2010-12-09 23:34:50 install mpg123 <none> 1.12.1-3ubuntu1
2010-12-09 23:34:52 install dir2ogg <none> 0.11.8-1
2010-12-09 23:34:53 install faad <none> 2.7-4
2010-12-09 23:34:54 install wavpack <none> 4.60.1-1
2010-12-10 11:53:00 install playonlinux <none> 3.8.6

Bu komutu yalnızca yeni kurulan paket adlarını listelemek için çalıştırabilirsiniz,

awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log

Şunun geçmişini listeleme komutu apt-get(NOT: bu yüklü bağımlılıkları listelemez, yalnızca apt-getçalıştırılan önceki komutları listeler ):

grep " install " /var/log/apt/history.log

Örnek çıktı:

Commandline: apt-get install libindicate-doc
Commandline: apt-get install googlecl
Commandline: apt-get --reinstall install ttf-mscorefonts-installer
Commandline: apt-get install valac libvala-0.10-dev
Commandline: apt-get install libgtksourceview-dev
Commandline: apt-get install python-sphinx
Commandline: apt-get install python-epydoc
Commandline: apt-get install quickly-widgets
Commandline: apt-get install libreoffice3* libobasis3.3*
Commandline: apt-get install mc

sinaptik ile sorunu, sen yetenek ile ne apt-get ve bu seçenek için bu nedenle 1 için, dpkg göstermiyor olmasıdır
hhlp

Bu komut güncellemeleri göstermeyecek. Her şeyi görmek için yazılım merkezini kullanın.
HDave

1
Böyle bir metin dosyasını kaydetmek daha iyi olabilircat /var/log/apt/history.log | grep "\ install\ " > install.log
CrandellWS

4
grep " install " /var/log/dpkg.logyeterli olacaktır. Kullanmaya gerek yok cat. Ayrıca bkz bu .
Ağustos

1
Bunun yalnızca yeni kurulmuş paketleri bulmak gibi göründüğünü unutmayın. Yeni sürümün yüklendiği paketler şu şekilde görünür upgrade:dpkg.log
Andre Holzner

14

Ubuntu Yazılım Merkezi, kurulmuş / yükseltilmiş / kaldırılmış tüm paketlerin geçmişini gösterir. Soldaki listenin altındaki "Geçmiş" i tıklamanız yeterlidir.


4
Bu tarih butonu şimdi GUI'nin başındadır ve kurulu paketleri ve güncellemeleri gösterebilir. Bu, güncellemeler için işe yarayan tek cevap olarak, soruna kabul edilen cevap olmalıdır.
HDave

Bu soru bir masaüstü (GUI) ortamı belirtmez, ancak kabul edilen cevap GUI ve GUI olmayan senaryolarda geçerlidir.
msanford

@HDave Kesinlikle doğru değil, dpkg.loggüncellemeleri günlüğe kaydeder.
GKFX

10

Yükleme zamanına göre sıralanmış daha eski paketleri görmek için:

grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log

Ve çok uzun zaman önce kurulan paketler için:

gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "

2 gün önce kurulmuş /var/log/dpkg.logfakat içinde olmayan bir paket buldum /var/log/apt/history.log. Nedenini hala bilmiyorum ...
Samuel Li

5

Aşağıdaki numara Aleksandr Dubinsky'nin bunu elle kurulan paketlerle sınırlandırma isteğine cevap veriyor:

comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
  • comm -12 iki sıralı dosya için ortak olan hatları listeler.
  • <(command)çıktısını içeren bir dosyanın adına genişler command.
  • apt-mark showmanualelle kurulan paketleri listeler; yani. asla otomatik olarak çıkarılmaması gerekenler.
  • grep " install " /var/log/dpkg.log kabul edilen cevaptan alınır.

Alternatif, daha fazla bilgi gösteren, kronolojik sırada ve mevcut tüm kayıt defterlerine erişme:

zcat -f /var/log/dpkg.log* | grep " install " | sort > /tmp/dpkg.log
grep -F "`comm -12 <(apt-mark showmanual | sort) <(cat /tmp/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)`" /tmp/dpkg.log | grep \<none\>

grep \<none\>sonuçları yeni kurulumlarla sınırlar. Örneğin, grep 2016-0[567]ilk boru hattına ekleyerek aramayı üç aylık bir süre ile sınırlandırmak için grep kullanabilirsiniz ; çok esnek.


Bu yaklaşıyor. İyileştirilebilecek şeyler: 1) paketleri kronolojik sırada gösterir, 2) yükleme tarihi / saatleri, sürüm, belki boyutu 3 gibi daha fazla ayrıntı gösterir 3) işletim sistemi kurulduğundan beri kurulu olan tüm paketleri gösterir.
Aleksandr Dubinsky

İnanılmaz! Her komutla ilgili daha fazla açıklama ile daha özlü olmak için cevabınızı temizlersem sorun olur mu?
Aleksandr Dubinsky,

@AleksandrDubinsky Bu düzenleme için teşekkürler; Açıklamayı, yaptığınız değişikliklerle eşleşecek şekilde düzelttim.
GKFX

İlk izlenim olan "Aleksandr Dubinsky'nin isteğini yanıtlayan hilelere cevap veriyor" gürültüsünü, işe yaramaz olan, iyi bir başlık, ana komutu üste koy, örnek çıktıyı ekle ve tüm komutları açıklamaya çalışmamın sakıncası var mı? katılan?
Aleksandr Dubinsky,

1
Son komutta bir hata var çünkü grep -Fkısmi eşleşmeler bulun. Örneğin, eğer python3kurulmamışsa, python3-click-packageartık kurulu olmayanlar dahil tüm python3 kütüphaneleriyle ( ) eşleşecektir . Dahası, grep -Fwyardımcı olmuyor çünkü -bir kelime sınırı.
Aleksandr Dubinsky,

5

Hepsi bir satırda; komut kullanımı için

Hepsi yeni bir satırda yalnızca yeni yüklenmiş paket adlarını seçin ve yazdırın .

Bunu yapmak için en çok oylanan cevabı aşağıdaki gibi değiştirin:

cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'

Bu, tek bir paket adı satırıyla sonuçlanır. Böyle bir çizgi bir sudo apt-get purgekomuta kolayca eklenebilir .

Örnek çıktı

libgnome-media-profiles-3.0-0 gstreamer0.10-gconf gnome-media gnome-menus librest-0.7-0 libgoa-1.0-common libgoa-1.0-0 libwacom-common libwacom2 ubuntu-docs apg libgnome-control-center1 libgnomekbd-common libgnomekbd7 gnome-control-center-data gnome-icon-theme-symbolic gnome-settings-daemon ubuntu-system-service gnome-control-center gnome-online-accounts gnome-session-bin indicator-power mousetweaks

Paketleri birbiri ardına listeleme

Popüler talebe göre, paketleri birbiri ardına sıralamak için biraz uyarlanmış bir sürüm:

cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'

catKomutun çıktısını çözümlemeyin . Peki ya bu awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log?
Avinash Raj

@AvinashRaj Komutunuz awkpaketleri bir diğerinin altına basar ; Mayın biri yanındaki başka. Bu nedenle bir çıktı örneği zaman zaman faydalı olabilir.
Serge Stroobandt

2

Wajig adında bir paket var Komut satırı için kontrol edin, ilk yüklediğim şey bu. Yetenek gibi, bir emir göndericinin çalışmasını beklediğiniz gibi çalışması dışında. Yani gerçekten, bu yetenek gibi değil. Aşağıdaki komutlar sadece küçük bir altkümedir.

wajig help
Common JIG commands:

 update         Update the list of downloadable packages

 new            List packages that became available since last update
 newupgrades    List packages newly available for upgrading

 install        Install (or upgrade) one or more packages or .deb files
 remove         Remove one or more packages (see also purge)

 toupgrade      List packages with newer versions available for upgrading
 upgrade        Upgrade all of the installed packages or just those listed

 listfiles      List the files that are supplied by the named package
 listnames      List all known packages or those containing supplied string
 whatis         For each package named obtain a one line description
 whichpkg       Find the package that supplies the given command or file

Run 'wajig -v commands' for a complete list of commands.

5
wajigEn son paketlerin listelenmesinde nasıl yardımcı olacağından emin değilim . Bunun için emirleri inceleyen bir komut göremiyorum. Komutun ne olduğunu biliyor musun?
Ehtesh Choudhury

1

DoR'nin cevabına ek olarak, bir GUI tercih edenler için, Synaptic'te bir Dosya -> Tarih menü maddesi vardır.


2
Rafalcieslak'ın işaret ettiği gibi , bu işlev Yazılım Merkezinde de mevcuttur.
belacqua

3
Sinaptik tarihi sadece Synaptic ile kurduğunuzu gösterir ... tamamen işe yaramaz.
HDave

1

İşte dpkg yüklü dosyaları listelemek için bazı kabuk. (tüm apt / yetenek / yazılım merkezi / synaptic yüklü paketleri içermelidir)

grep -A 1 "Package: " /var/lib/dpkg/status | \
grep -B 1 -Ee "ok installed|half-installed|unpacked|half-configured|config-files" -Ee "^Essential:yes" | \
grep "Package:" | cut -d\  -f2

Bu yükleme zamanı / tarih bilgisi içermez. Ancak, os kurulumdan akıma kurulan paketlerdeki herhangi bir farklılığın belirlenmesinde faydalı olabilir.


-1

Kurulum geçmişini Software Center veya Synaptic'te görüntülemenin sorunu, içeriği bir e-postaya kopyalamanın / yapıştırmanın zor olması (örn. Teknik destekle konuşurken!). Alternatif olarak, günlük dosyalarının içeriğini /var/log/aptkök olarak görüntülemektir.


2
Sadece açıklığa kavuşturmak, içindeki içeriği görüntülemek /var/log/aptiçin kök olmanız veya herhangi bir yöneticinin imtiyazı olması gerekmez.
Samuel Li,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.