คุณใช้ apt-get เพื่อติดตั้งเฉพาะการอัปเดตความปลอดภัยที่สำคัญบน Ubuntu ได้อย่างไร

เราต้องการอัปเกรดเฉพาะแพ็คเกจที่ต้องอัปเกรดด้วยเหตุผลด้านความปลอดภัย โดยไม่ต้องอัปเกรดแพ็คเกจอื่นๆ ทั้งหมด

answer

ฉันอ่าน apt-get man page อย่างระมัดระวังเมื่อฉันเบื่อกับการแก้ไข source.list ด้วยตนเองทุกครั้งที่ฉันต้องการใช้การอัปเดตความปลอดภัยเท่านั้น (นั่นหมายถึงครั้งที่สอง)

คิดวิธีแก้ปัญหานี้:

sudo cp /etc/apt/sources.list /etc/apt/security.sources.list

แก้ไขส่วนหลังให้มีเฉพาะที่เก็บความปลอดภัย จากนั้น:

sudo apt-get upgrade -o Dir::Etc::SourceList=/etc/apt/security.sources.list

Tadaaaa... สิ่งที่เขียนสคริปต์ได้

ลองunattended-upgradesหรือวิธีการอื่น ๆ ที่ระบุไว้ที่นี่ สามารถใช้เพื่อกำหนดค่าการอัปเดตความปลอดภัยอัตโนมัติ (ฉันเชื่อว่ามันถูกใช้เมื่อถูกถามระหว่างการติดตั้ง) เช่นเดียวกับการอัปเกรดอื่นๆ โดยอัตโนมัติ ดูหน้าคนสำหรับรายละเอียดเพิ่มเติม

หากคุณต้องการทำสิ่งนี้อย่างรวดเร็วเพียงครั้งเดียว แทนที่จะสร้างที่เก็บแยกต่างหากและเขียนสคริปต์การทำงานอัตโนมัติบางส่วนและทั้งหมดนั้น ดีมากหากคุณไม่ควรทำการเปลี่ยนแปลงขณะตรวจสอบระบบหรืออะไรก็ตาม

คำสั่งทั้งสองนี้จะแยกรายการออก ไปป์ไปที่ wc -l เพื่อดูว่าข้างหลังมีกี่หลัง ;-)

grep security /etc/apt/sources.list > /tmp/security.list
sudo apt-get upgrade -oDir::Etc::Sourcelist=/tmp/security.list -s

ยังคงใช้ได้สำหรับ distros รุ่นเก่าหรือหากคุณปิด repos ไว้ แต่การรักษาความปลอดภัยบน:

sudo apt-get upgrade -s| grep ^Inst |grep Security 

ฉันไม่รู้ว่ามันจะใช้งานได้หรือไม่ แต่ apt มีแหล่งที่มาใน /etc/apt/sources.list และ/หรือ /etc/sources.list.d/

ทำไมไม่แก้ไขไฟล์และแสดงความคิดเห็นทุกบรรทัดที่ไม่ได้เป็นส่วนหนึ่งของการอัปเดตความปลอดภัย ?

สายการรักษาความปลอดภัยสำหรับ apt ควรมีลักษณะดังนี้:

deb http://security.ubuntu.com/ubuntu ..... ..... ...

ปล่อยให้บรรทัดเหล่านั้นอยู่คนเดียวและแสดงความคิดเห็นอื่น ๆ ทั้งหมด

สิ่งที่ฉันทำ:

apt-get update
apt-get install -y --only-upgrade $( apt-get --just-print upgrade | awk 'tolower($4) ~ /.*security.*/ || tolower($5) ~ /.*security.*/ {print $2}' | sort | uniq )