คุณติดตามแพ็คเกจที่ติดตั้งบน Fedora (Linux) ได้อย่างไร


11

(คำถามนี้คล้ายกับ 6338 . เราแนะนำให้แยกออกจากกันเนื่องจาก Fedora และ Ubuntu / Debian นั้นแตกต่างกันพอที่จะรับประกันคำตอบที่ต่างกัน)

ขณะที่ฉันใช้การตั้งค่า Fedora ฉันจะค่อยๆติดตั้งแพ็คเกจจำนวนหนึ่งขึ้นไปจากการติดตั้งพื้นฐาน ถ้าฉันติดตั้งใหม่หรือถ้าฉันต้องการติดตั้งเครื่องใหม่ฉันมักจะต้องการติดตั้งใหม่ โดยเฉพาะ แพคเกจและฉันต้องการที่จะทำมันอย่างรวดเร็วเพื่อกลับไปทำงานด้วยความยุ่งยาก เท่าที่ฉันเห็นผู้จัดการแพ็คเกจทั้งหมด ( yum และ pirut ) สามารถบอกได้ว่าติดตั้งแพคเกจใดและพวกเขาทั้งหมดมีบันทึก (แม้ว่าจะแตกต่างกันสำหรับเครื่องมือแต่ละอัน แต่ไม่มีใครสามารถบอกได้ว่าบรรจุภัณฑ์ใด ฉันได้ ติดตั้งเมื่อเทียบกับการอ้างอิงหรือการปรับปรุงระบบของพวกเขา แม้กระทั่งท่อนไม้นั้นมีเล่ห์เหลี่ยมในเรื่องที่ฉันไม่แน่ใจว่าสิ่งที่ฉันควรจะสกัดจากพวกเขาหรือวิธีการรวมพวกเขา ซึ่งหมายความว่าทุกครั้งที่ฉันติดตั้งใหม่หรือแม้กระทั่งสำรองข้อมูลฉันไม่แน่ใจว่าจะสร้างรายการนั้นใหม่ได้อย่างไร

ฉันไม่จำเป็นต้องคาดหวังว่าเครื่องมือใด ๆ ที่จะทำสิ่งนี้กับฉัน แม้แต่รูปแบบการ grep สำหรับกฎง่ายๆหรือความคิดที่ชัดเจนของสิ่งที่ถูกบันทึกจะเป็นประโยชน์ อาจไม่มี "คำตอบที่ดีที่สุด" ที่นี่ แต่คำตอบที่ดีจะมีประโยชน์มาก

คำตอบ:


3

yum list installed และ yum.log จะแสดงสิ่งที่ถูกติดตั้ง แต่ฉันไม่คิดว่าอะไรในระบบจะแยกความแตกต่างระหว่างแพ็คเกจที่คุณเลือกที่จะติดตั้งและที่ติดตั้งเป็นการอ้างอิง


2

สมมติว่าคุณยังมี /root/install.log ไฟล์จากการติดตั้งดั้งเดิมคุณสามารถสร้างไฟล์ rpm.orig และ rpm.curr ดังนั้น:

cd /root
rpm -qa --qf '%{NAME}\n' | sort -u > rpm.curr
awk '($1=="Installing"){print $2}' install.log | sort -u > rpm.orig

จากนั้นเพื่อดูแพ็คเกจที่เพิ่ม:

comm -13 rpm.orig rpm.curr

และสิ่งที่ถูกลบออก:

comm -23 rpm.orig rpm.curr

โปรดทราบว่าหากคุณมี x86_64 การติดตั้งมันจะไม่บอกความแตกต่างระหว่างแพคเกจ 32- และ 64- บิต


2

ลองใช้ดู sudo yum history packages-list \*

มันจะแสดงสิ่งที่ติดตั้งอย่างชัดเจนและสิ่งที่ถูกติดตั้งเป็นการพึ่งพา:

ID | Action(s)      | Package                                              
-------------------------------------------------------------------------------
47 | Dep-Install    | cairomm-1.8.0-2.1.el6.x86_64                         
47 | Dep-Install    | glibmm24-2.22.1-1.el6.x86_64                         
47 | Install        | gnome-system-monitor-2.28.0-11.el6.x86_64

0

นี่เป็นวิธีที่ง่าย

เพียงแค่เรียกใช้คำสั่งด้านล่างในเปลือกที่คุณชื่นชอบ manpage สำหรับ RPM จะแสดงให้เห็นอย่างเจ็บปวดหากคุณต้องการดำน้ำลึก

รอบต่อนาที -qa


3
นั่นแสดงรายการแพ็คเกจทั้งหมดใช่ แต่ไม่ได้แยกความแตกต่างระหว่างแพ็คเกจที่ฉันเพิ่มและแพ็คเกจที่อยู่ในระบบ ฉันต้องการติดตามแพ็คเกจเฉพาะที่ติดตั้งไว้อย่างชัดเจน
quark

คุณติดตั้งแพคเกจทั้งหมดอย่างชัดเจน คุณจะต้องเจาะจงมากขึ้นในสิ่งที่คุณต้องการทำเพื่อรับความช่วยเหลือที่มีความหมาย
vonbrand

0

ไฟล์ /root/install.log จะบอกคุณว่าแพ็คเกจใดรวมอยู่ในการติดตั้งครั้งแรก นี่คือสคริปต์ด่วนที่จะเปรียบเทียบเนื้อหาของไฟล์นี้กับผลลัพธ์ของ rpm -qa:

rpm -qa | sort > /root/postinstall.list
for P in `sed -n 's/Installing \(.*\)/\1/p' </root/install.log`
do
  sed -ie "/$P/d" /root/postinstall.list
done

ไฟล์ /root/postinstall.list มีสิ่งที่คุณต้องการ โปรดทราบว่าแพ็คเกจที่เป็นรุ่นอัพเกรดของแพ็คเกจที่ติดตั้งไว้จะปรากฏในไฟล์ หากนี่ไม่ใช่สิ่งที่คุณต้องการคุณจะต้องมีรูปแบบที่ซับซ้อนยิ่งขึ้นในข้อความสั่ง sed


0

rpm -qa --last

จากหน้าคน:

--last Orders the package listing by install time such that the latest packages are at the top.

ตัวอย่างผลลัพธ์:

mdadm-3.2.2-9.el6                             Mon 12 Dec 2011 10:06:17 AM EST
libdrm-2.4.25-2.el6                           Mon 12 Dec 2011 09:54:51 AM EST
tcp_wrappers-libs-7.6-57.el6                  Mon 12 Dec 2011 09:54:50 AM EST

0

สมมติว่าคุณใช้ "yum" เพื่อติดตั้งทุกสิ่งที่คุณทำได้

sudo yum history info \* | grep "^Command Line   : install"

ควรแสดงคำสั่ง "yum install" ทั้งหมดที่ดำเนินการบนระบบหลังการติดตั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.