เป็นไปได้ไหมที่จะได้รับรายชื่อแพ็คเกจที่ติดตั้งล่าสุดผ่าน apt-get?
apt-mark showmanual | less
ทำไม่ได้เหรอ?
comm -12 a b
กับa
สำเนาที่เรียงลำดับapt-mark showmanual
แล้วและb
เรียงลำดับรายการจากหนึ่งในคำตอบด้านล่าง
เป็นไปได้ไหมที่จะได้รับรายชื่อแพ็คเกจที่ติดตั้งล่าสุดผ่าน apt-get?
apt-mark showmanual | less
ทำไม่ได้เหรอ?
comm -12 a b
กับa
สำเนาที่เรียงลำดับapt-mark showmanual
แล้วและb
เรียงลำดับรายการจากหนึ่งในคำตอบด้านล่าง
คำตอบ:
คำสั่งไปยังรายการแพ็กเกจที่เพิ่งติดตั้งซึ่งติดตั้งผ่านวิธีใด ๆ ( apt-get
, Software Center และคณะ):
grep " install " /var/log/dpkg.log
ตัวอย่างผลลัพธ์:
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
คุณสามารถเรียกใช้คำสั่งนี้เพื่อแสดงรายการชื่อแพ็คเกจที่เพิ่งติดตั้งล่าสุด
awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log
คำสั่งสู่รายการประวัติของapt-get
(หมายเหตุ: นี่ไม่ได้ติดตั้งรายการการพึ่งพามันเพียงแค่รายการapt-get
คำสั่งก่อนหน้านี้ที่ถูกเรียกใช้):
grep " install " /var/log/apt/history.log
ตัวอย่างผลลัพธ์:
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
cat /var/log/apt/history.log | grep "\ install\ " > install.log
upgrade
ในdpkg.log
Software Center ของ Ubuntu แสดงประวัติทั้งหมดของแพ็คเกจทั้งหมดที่ติดตั้ง / อัพเกรด / ลบออก เพียงคลิก "ประวัติ" ที่ด้านล่างของรายการทางซ้าย
dpkg.log
บันทึกการปรับปรุง
หากต้องการดูแพ็คเกจเก่าที่เรียงตามเวลาที่ติดตั้ง:
grep " install " /var/log/dpkg.log.1 /var/log/dpkg.log
และสำหรับแพ็คเกจที่ติดตั้งมานานมากแล้ว:
gunzip -c `ls -tr /var/log/dpkg.log.*.gz` | grep " install "
/var/log/dpkg.log
/var/log/apt/history.log
ยังไม่รู้ว่าทำไม ...
เคล็ดลับต่อไปนี้ตอบคำขอของ Aleksandr Dubinsky เพื่อ จำกัด สิ่งนี้ให้กับแพ็คเกจที่ติดตั้งด้วยตนเอง:
comm -12 <(apt-mark showmanual | sort) <(grep " install " /var/log/dpkg.log | cut -d " " -sf4 | grep -o "^[^:]*" | sort)
comm -12
แสดงรายการบรรทัดทั่วไปสำหรับไฟล์ที่เรียงสองไฟล์<(command)
command
ขยายไปยังชื่อของไฟล์ที่มีการส่งออกของapt-mark showmanual
แสดงรายการแพ็กเกจที่ติดตั้งด้วยตนเอง กล่าวคือ ที่ไม่ควรถูกลบโดยอัตโนมัติgrep " install " /var/log/dpkg.log
ถูกนำมาจากคำตอบที่ยอมรับทางเลือกที่แสดงข้อมูลเพิ่มเติมตามลำดับเวลาและการเข้าถึงบันทึกที่มีอยู่ทั้งหมดคือ:
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\>
จำกัด ผลลัพธ์สำหรับการติดตั้งใหม่ ตัวอย่างเช่นคุณสามารถใช้ grep เพื่อ จำกัด การค้นหาเป็นระยะเวลาสามเดือนโดยเพิ่มgrep 2016-0[567]
ไปที่ขั้นตอนแรก มันยืดหยุ่นมาก
grep -F
พบการแข่งขันบางส่วน ตัวอย่างเช่นหากpython3
ติดตั้งแล้วมันจะจับคู่ไลบรารี python3 ทั้งหมด ( python3-click-package
) รวมถึงไลบรารีที่ไม่ได้ติดตั้งอีกต่อไป ยิ่งกว่านั้นgrep -Fw
ไม่ช่วยเพราะ-
เป็นขอบเขตของคำ
เลือกและพิมพ์เฉพาะชื่อแพ็กเกจที่เพิ่งติดตั้งทั้งหมดในหนึ่งบรรทัด
หากต้องการทำเช่นนั้นให้เปลี่ยนคำตอบที่โหวตมากที่สุดเป็น:
cat /var/log/dpkg.log |awk '/ install / {printf "%s ",$4}'
ผลลัพธ์นี้ในชื่อแพคเกจบรรทัดเดียว บรรทัดดังกล่าวสามารถเพิ่มลงในsudo apt-get purge
คำสั่งได้อย่างง่ายดาย
ตัวอย่างผลลัพธ์
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
ตามความต้องการที่ได้รับความนิยมนี่เป็นเวอร์ชั่นดัดแปลงเล็กน้อยสำหรับการแสดงรายการแพ็คเกจด้านล่าง:
cat /var/log/dpkg.log |awk '/ install / {printf "%s\n",$4}'
cat
คำสั่ง แล้วเรื่องนี้awk '$3~/^install$/ {print $4;}' /var/log/dpkg.log
ล่ะ?
awk
คำสั่งของคุณพิมพ์แพ็คเกจหนึ่งด้านล่างอื่น; ฉันหนึ่งต่อไปอีก นั่นคือเหตุผลที่ตัวอย่างเอาต์พุตอาจมีประโยชน์เป็นครั้งคราว
มีแพ็คเกจที่เรียกว่าwajigลองใช้ดูสำหรับบรรทัดคำสั่งมันเป็นสิ่งแรกที่ฉันติดตั้งทันที ชอบความถนัดยกเว้นว่ามันจะทำงานได้ตามที่คุณคาดหวังว่าโปรแกรมเลือกจ่ายงานคำสั่งจะทำงาน ดังนั้นจริงๆแล้วมันไม่ได้เป็นความถนัด คำสั่งด้านล่างเป็นเพียงชุดย่อย
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.
wajig
จะช่วยรายการแพคเกจล่าสุดได้อย่างไร ฉันไม่เห็นคำสั่งหลังจากนั้นคร่าวๆดูคำสั่ง คุณรู้หรือไม่ว่าคำสั่งคืออะไร?
นอกจากคำตอบของ DoR สำหรับผู้ที่ชอบ GUI แล้วยังมีรายการเมนูไฟล์ -> ประวัติใน Synaptic
นี่คือเชลล์ที่จะแสดงรายการไฟล์ที่ติดตั้ง dpkg (ซึ่งควรรวมถึงแพกเกจ apt / aptitude / software / ติดตั้ง synaptic ทั้งหมด)
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
ไม่รวมข้อมูลเวลา / วันที่ติดตั้ง แต่อาจมีประโยชน์ในการกำหนดความแตกต่างใด ๆ ในแพ็คเกจที่ติดตั้งจากระบบปฏิบัติการ os เป็นปัจจุบัน
ปัญหาในการดูประวัติการติดตั้งใน Software Center หรือ Synaptic นั้นยากที่จะคัดลอก / วางเนื้อหาลงในอีเมล (เช่นเมื่อพูดคุยกับฝ่ายสนับสนุนด้านเทคนิค!) ทางเลือกคือการดูเนื้อหาของไฟล์บันทึกใน/var/log/apt
ฐานะที่เป็นรูท
/var/log/apt
คุณไม่จำเป็นต้องรูทหรือด้วยสิทธิ์ของผู้ดูแลระบบ