ฉันจะรักษา“ Wheezy” Raspbian ของฉันให้ทันสมัยได้อย่างไร?


45

มีเครื่องมืออัพเดตสำหรับแพ็คเกจRaspbian Debian 7 (Wheezy) ของฉันหรือไม่?

ฉันติดตั้งphpและlighttpdและฉันต้องการให้มีการปรับปรุงโดยอัตโนมัติเมื่อพบข้อบกพร่อง

คำตอบ:


48

คุณต้องป้อนคำสั่งลงในบรรทัดคำสั่ง ก่อนอื่น:

apt-get update  

(สิ่งนี้จะอัพเดทแหล่งที่มาของซอฟต์แวร์)

apt-get upgrade  

(สิ่งนี้จะอัปเกรดทุกอย่างเป็นเวอร์ชั่นล่าสุด)


นั่นคือทั้งหมดที่มีไปหรือไม่ มันจะอัพเกรดทุกครั้งที่ฉันติดตั้งผ่าน apt-get รวมถึงระบบปฏิบัติการเองหรือไม่
มิเชล

1
"OS ตัวเอง" เป็นเคอร์เนล linux ใช่ ครั้งแรกที่คุณทำสิ่งนี้อาจจะมีการอัปเดตหลายครั้งเนื่องจากที่เก็บข้อมูลมักจะมีแพ็คเกจใหม่กว่าอิมเมจการติดตั้ง
goldilocks

ทุกอย่างที่มาจาก repo ฉลาดนั่นคือ ซึ่งโดยปกติคือทุกอย่างยกเว้นข้อมูลของคุณ แต่อาจไม่รวมถึงเคอร์เนลหรือ bootloader ในกรณีนี้ หากคุณได้ดาวน์โหลดสิ่งต่าง ๆ จากที่อื่นหรือสร้างของคุณเองจะเห็นได้ว่าไม่สามารถอัปเกรดอัตโนมัติได้ :)
XTL

ใช่นั่นคือทั้งหมดที่มีให้มัน คุณอาจต้องตอบคำถามใช่ / ไม่ใช่เป็นครั้งคราวสำหรับซอฟต์แวร์ชิ้นใหญ่ แต่โดยทั่วไปมันเป็นเรื่องง่าย
recantha

1
@Michel: บางครั้ง "linux OS" ถูกเรียกอย่างกว้าง ๆ ว่า "GNU / Linux" ซึ่งจะรวมถึงเคอร์เนล ("linux" ในแง่ที่เข้มงวด) และพื้นฐานพื้นฐาน userspace เช่นไลบรารี C, เชลล์, ฯลฯ ซึ่งอยู่ภายใต้ ร่ม GNU ด้วยหน้าต่างชิ้นส่วนเหล่านี้ทั้งหมดจะถูกรวมเข้าด้วยกันอย่างไร้ที่ติในขณะที่โลกของลินุกซ์นั้นมีความหลากหลายและแยกส่วนดังนั้นจึงอาจมีความสับสนบ้าง ฉันจะใช้ "ระบบปฏิบัติการ" ที่นี่เพื่ออ้างถึงเดเบียน wheezy distro (รวมถึงเคอร์เนล) แต่คุณดูเหมือนจะอ้างถึงบางสิ่งที่เฉพาะเจาะจงมากขึ้น
goldilocks

41

unattended-upgradesแพคเกจเป็นวิธีที่จะอัปเดตอัตโนมัติระบบปฏิบัติการเหล่านี้ในการกระจายเดเบียนครอบครัว ทำตามคำแนะนำที่พบในที่นี่

โดยทั่วไปคุณต้องติดตั้งแพคเกจ:

sudo apt-get install unattended-upgrades

และเพิ่มใน/etc/apt/apt.conf.d/10periodicรายการต่อไปนี้:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
APT::Periodic::Unattended-Upgrade "1";

นอกจากนี้ (เนื่องจากดูเหมือนว่าการย้ายของแพ็กเกจไม่ได้ไร้ที่ติ) ให้เปลี่ยนบรรทัดต่อไปนี้ที่ส่วนแรกของ/etc/apt/apt.conf.d/50unattended-upgrades:

        "origin=Debian,archive=stable,label=Debian-Security";

ไปยัง

//        "origin=Debian,archive=stable,label=Debian-Security";
        "origin=Raspbian";

ตอนนี้ระบบของคุณจะคอยอัพเดทตัวเองโดยอัตโนมัติ


3
ขั้นตอนสุดท้าย (การสลับออกorigin=Debian) ไม่จำเป็นในการกระจายล่าสุดของ Raspbian
Dolph

ใน Raspbian Wheezy วันนี้ดูเหมือนว่ายังมีความจำเป็นเช่น:Checking: openssl (["<Origin component:'main' archive:'oldstable' origin:'Raspbian' label:'Raspbian' site:'mirrordirector.raspbian.org' isTrusted:True>"])
astorije

อ๊ะฉันอ่านผิด ใช่origin=Raspbianยังมีความจำเป็นในไฟล์การกำหนดค่า แต่ไม่คุณไม่จำเป็นต้องทำด้วยตัวเองอีกต่อไปขออภัย ...
astorije

26

Dist:

 $ sudo apt-get update
 $ sudo apt-get upgrade 

อัปเดต Rpi เป็นครั้งแรก: ติดตั้ง git และหนังสือรับรองสำหรับการเข้าถึง github

$ sudo apt-get install ca-certificates
$ sudo apt-get install git-core
$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update
$ sudo chmod +x /usr/bin/rpi-update

อัปเดตเฟิร์มแวร์

$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot

อัปเดต Rpi หลังจาก:

$ sudo rpi-update
$ sudo ldconfig
$ sudo reboot

RPI อัพเดท


5

RPI อัพเดทขณะนี้สามารถดึงข้อมูลได้โดยตรงผ่านทาง apt-get ดังนั้นก็จะไม่มีความจำเป็นที่จะจัดการกับWget ดังนั้นนี่คือวิธีการอัพเดท:

Dist:

 $ sudo apt-get update
 $ sudo apt-get upgrade 

คุณต้องรีบูต Raspberry Pi ทันทีมิฉะนั้นจะไม่ใช้เคอร์เนลใหม่!

RPI อัปเดตครั้งแรก: ติดตั้งGitและการรับรองในการเข้าถึงGitHub

$ sudo apt-get install ca-certificates
$ sudo apt-get install git-core
$ sudo apt-get install rpi-update

อัปเดตเฟิร์มแวร์

$ sudo rpi-update
$ sudo reboot

RPI อัพเดท


3

นอกจากนี้คุณยังสามารถเขียนสคริปต์เล็ก ๆ น้อย ๆ พร้อมกับขั้นตอน apt-get ในนั้นและรันมันตามกำหนดเวลาวันละครั้ง / แต่บ่อยครั้งที่คุณชอบนั่นคือสิ่งที่ฉันได้ทำไปแล้ว

วิธีตั้งค่างาน cron บน Pi:

http://www.wexoo.net/20130406/running-cron-jobs-on-raspberry-pi-in-raspbmc

วิธีเขียนสคริปต์ทุบตี:

https://www.linux.com/learn/tutorials/284789-writing-a-simple-bash-script-

สคริปต์ของฉันเรียบง่าย

apt-get update
apt-get upgrade -yes
apt-get dist-upgrade -yes
apt-get clean

และฉันได้มันเข้าสู่ระบบออกไปยังไฟล์ที่มีในตอนท้ายของแต่ละบรรทัดเช่น>>apt-get update >> autoupdate.txt

มันเป็นที่ถกเถียงกันอยู่ว่าความคิดมันจะดีแค่ไหน!


โอกาสใด ๆ ที่คุณสามารถแบ่งปันสคริปต์ & / หรือข้อมูลเกี่ยวกับวิธีการทำกิจกรรมที่กำหนดเวลาเหล่านี้ ฉันจินตนาการว่าผู้ปฏิบัติการรู้วิธีการนี้เขาจะไม่โพสต์
Phill Healey

1

เว็บไซต์ Art of Webมีคู่มือที่ยอดเยี่ยมสำหรับ Debian Wheezy ที่ฉันต้องแก้ไขเพียงบรรทัดเดียวเพื่อให้สามารถใช้งาน RPi ทดสอบของฉันได้ การเชื่อมโยงจะนำคุณไปแนะนำของพวกเขาบนcron-apt; ซึ่งได้รับการแปลเสียงกรีดร้องด้วยการปรับเปลี่ยนสำหรับระบบ RPi repos 'อธิบาย

ติดตั้ง cron-apt

sudo apt-get install cron-apt

การกำหนดค่าเริ่มต้นการกระทำและการกำหนดค่าแบบกำหนดเองสามารถพบได้

ls -hal /etc/cron-apt/config

ls -hal /etc/cron-apt/action.d/

ls -hal /etc/cron-apt/config.d/

ผนวก/etc/cron-apt/configไฟล์ต่อไปนี้ด้วยsudo tee -aเพื่อเปิดใช้งานอีเมลที่จะส่งพร้อมข้อมูล verbos เกี่ยวกับการดำเนินการระหว่างการอัพเดตอัตโนมัติ

echo 'MAILON="output"' | sudo tee -a /etc/cron-apt/config

echo 'DEBUG="verbose"' | sudo tee -a /etc/cron-apt/config

การบันทึกถูกทิ้งไปที่: /var/log/cron-apt/log

สร้างไฟล์แอ็คชันใหม่สำหรับการอัพเดตแพ็กเกจที่เกี่ยวข้องกับความปลอดภัยด้วยคำสั่ง touch และเพิ่มหนึ่งบรรทัดด้วยคำสั่ง sudo tee อื่น ๆ จะถูกดาวน์โหลด แต่รอให้ sys-admin ติดตั้งโปรแกรมปรับปรุงที่ไม่ใช่ความปลอดภัย การอัปเดตและเอาท์พุททั้งหมดจะถูกส่งอีเมลไปยังผู้ใช้รูทหรือ sys-admin สำหรับการตรวจสอบเพิ่มเติมและ / หรือการกระทำที่จะต้องดำเนินการ

sudo touch /etc/cron-apt/action.d/5-security

echo 'upgrade -y -o APT::Get::Show-Upgraded=true' | sudo tee -a /etc/cron-apt/action.d/5-security

สร้างไฟล์การกำหนดค่าใหม่เพื่อใช้การกระทำข้างต้น spicifficly ใช้/etc/apt/sources.list.d/security.listเป็นเส้นทางสำหรับการปรับปรุงความปลอดภัย เส้นทางของไฟล์อาจแตกต่างไปจากระบบของคุณหากไม่ได้ใช้ Debian Linux อย่างสมบูรณ์ ตอนนี้ RPi ใช้ผู้กำกับมิเรอร์ดังนั้น/etc/apt/sources.listควรใช้แทนอย่างไรก็ตามไม่สามารถแนะนำเซิร์ฟเวอร์ระดับการผลิตได้เพราะจะอัปเดตการอัปเดตที่ไม่ใช่ความปลอดภัยด้วย

sudo touch /etc/cron-apt/config.d/5-security

echo 'OPTIONS="-o quiet=1 -o APT::Get::List-Cleanup=false -o Dir::Etc::SourceList=/etc/apt/sources.list.d/security.list -o Dir::Etc::SourceParts=\"/dev/null\""' | sudo tee -a /etc/cron-apt/config.d/5-security

รอสักครู่หนึ่งcron-aptเพื่ออัปเดตระบบของคุณและตรวจสอบบันทึกในเครื่องต่อไปนี้เพื่อดูว่ามีการปรับปรุงอะไรบ้างในขณะที่คุณหลับ

sudo cat /var/log/cron-apt/log

สิ่งนี้ได้รับการทดสอบบน RPi หนึ่งตัวเพื่อใช้ในการอัปเดตทุกแพ็คเกจรวมถึง Unbuntu PC ที่อัพเดตเฉพาะแพ็คเกจที่เกี่ยวข้องกับความปลอดภัย ดังนั้นฉันจึงรู้สึกว่ามันเป็นหนึ่งในตัวเลือกที่พกพาสะดวกกว่า แพคเกจอื่น ๆ สำหรับการอัปเดตอัตโนมัติซึ่งแนะนำโดย grassroot (ขอบคุณฉันจะทดสอบต่อไป) unattended-upgradesดูเหมือนจะเป็นอีกตัวเลือกที่ดีในการทำให้กระบวนการอัปเดตเป็นแบบอัตโนมัติ

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