ปัจจุบันได้รับสิ่งที่ได้ถึงวันที่ราสเบอร์รี่ Pi ของฉันฉันต้องพิมพ์และsudo apt-get update
sudo apt-get upgrade
มีวิธีตั้งค่าให้ทำสิ่งนี้โดยอัตโนมัติหรือไม่? ฉันกำลังใช้ Raspbian Jessie
ปัจจุบันได้รับสิ่งที่ได้ถึงวันที่ราสเบอร์รี่ Pi ของฉันฉันต้องพิมพ์และsudo apt-get update
sudo apt-get upgrade
มีวิธีตั้งค่าให้ทำสิ่งนี้โดยอัตโนมัติหรือไม่? ฉันกำลังใช้ Raspbian Jessie
คำตอบ:
แทนที่จะเป็น cron แบบแมนนวลคุณสามารถติดตั้งunattended-upgrades
ซึ่งมีประโยชน์เพื่อให้แน่ใจว่าได้ติดตั้งเมล็ดล่าสุดแล้ว มันถูกออกแบบมาเพื่อความปลอดภัยเป็นส่วนใหญ่
https://wiki.debian.org/UnattendedUpgrades
apt-get install unattended-upgrades
มีบางบิตที่สามารถปรับ / กำหนดค่าได้ แต่ค่าเริ่มต้นนั้นใช้ได้
50unattended-upgrades
รายการ"origin=Debian,codename=${distro_codename},label=Debian-Security";
และดูเหมือนว่าจะค้นหาแพ็คเกจที่เกี่ยวข้องได้อย่างถูกต้อง แน่นอนมันไม่สนใจหลายคน ฉันไม่ได้ตั้งค่าบัญชีขาวหรือบัญชีดำ
50unattended-upgrades
คือโง่แน่นอนและจะต้องมีการเปลี่ยนแปลงเพื่อให้สามารถทำงานกับ Raspian Raspian-Security
ไม่มี การปรับปรุงความปลอดภัยไม่ได้ระบุว่า เป็นสิ่งสำคัญที่จะต้องเพิ่มทั้งสอง"origin=Raspbian,codename=${distro_codename},label=Raspbian";
และ"origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
ไปยัง/etc/apt/apt.conf.d/50unattended-upgrades
ในเทอร์มินัลพิมพ์:
sudo su
เพื่อเข้าถึงพรอมต์ระดับราก จากนั้นเรียกใช้:
crontab -e
ในการเริ่มแก้ไข crontab ของคุณสารบัญงานที่จะรันโดยอัตโนมัติตามเวลาที่กำหนด มันจะเปิดในโปรแกรมแก้ไขข้อความที่คุณต้องการ แก้ไขเพื่อรวมบรรทัดต่อไปนี้:
0 7 * * 1 apt update && apt upgrade -y
เพื่ออัปเดตและอัปเกรดแอปของคุณโดยอัตโนมัติเวลา 7AM ทุกวันจันทร์ อ่านบน crontab เพื่อดูวิธีปรับให้เข้ากับความชอบของคุณ
&&
เนื่องจากมันเกี่ยวข้องกันและไม่มีเหตุผลที่จะ 'อัพเกรด' ถ้า 'update' ล้มเหลว
0
หมายถึงวันอาทิตย์ แต่ในรหัสของคุณคุณได้ใส่ไว้1
ดังนั้นคำสั่งจะทำงานในวันจันทร์ไม่ใช่วันอาทิตย์
dist-upgrade
ดีกว่าคุณจะจบลงด้วยการอ้างอิงหักโดยใช้เพียงupgrade
upgrade
คุณจะไม่ได้รับการอัพเดตที่ต้องมีการยืนยันการโต้ตอบ @ tedder42 ชี้ให้เห็นวิธีที่ Debian ต้องการ (โดยใช้unattended-upgrades
)
sudo
ในนั้น คุณได้เปลี่ยนไปบัญชีโดยใช้root
su
crontab ของ superuser ทำงานด้วยสิทธิ์ superuser
คุณสามารถติดตั้งและกำหนดค่า cron-apt ติดตั้งโดยทำดังต่อไปนี้:
apt-get install cron-apt
ไฟล์กำหนดค่าหลักคือ / etc / cron-apt / config
สิ่งหนึ่งที่ฉันเพิ่มลงในการกำหนดค่าของฉันคือ:
MAILON="always"
การดำเนินการนี้จะส่งอีเมลทุกครั้งที่ทำงานไม่ใช่เฉพาะเมื่อพบข้อผิดพลาด
โปรดทราบว่าการตั้งค่าเริ่มต้นจะไม่ติดตั้งการอัปเดตโดยอัตโนมัติ (มีเหตุผลที่ดีที่จะไม่ทำเช่นนี้) แต่คุณสามารถกำหนดค่าให้ทำเช่นนั้นได้ ข้อดีอย่างหนึ่งของโปรแกรมนี้คือการแก้ปัญหา cron อย่างง่าย ๆ คือมันให้คุณควบคุมสิ่งที่ได้รับการติดตั้ง (ดาวน์โหลดเฉพาะแพ็คเกจใหม่ติดตั้งโปรแกรมปรับปรุงความปลอดภัยหรือติดตั้งโปรแกรมปรับปรุงทั้งหมด)
หากต้องการตั้งเวลาที่จะแก้ไขไฟล์ /etc/cron.d/cron-apt
คุณสามารถค้นหาข้อมูลเพิ่มเติมและตัวเลือกการกำหนดค่าได้ที่นี่
แพคเกจรวมถึงเอกสารที่ดีมาก แต่มันเป็น gzipped วิธีแยกไฟล์:
ในการกำหนดค่าเริ่มต้นมันunattended-upgrades
จะแตกใน Raspbian Buster มันจะไม่ติดตั้งอัพเดตที่สำคัญสำหรับเคอร์เนลและซอฟต์แวร์อื่น ๆ ตัวเลือกของคุณคือ:
ตัวเลือกที่แนะนำ:
sudo apt install unattended-upgrades
echo 'Unattended-Upgrade::Origins-Pattern {
// Fix missing Rasbian sources.
"origin=Debian,codename=${distro_codename},label=Debian";
"origin=Debian,codename=${distro_codename},label=Debian-Security";
"origin=Raspbian,codename=${distro_codename},label=Raspbian";
"origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
};' | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-raspbian
สำหรับการปรับปรุงความปลอดภัยที่เร็วขึ้น (แต่ความเสถียรน้อยลงเนื่องจากแพ็คเกจยังไม่ได้รับการอนุมัติสำหรับ rasbian) คุณสามารถเพิ่มแพ็คเกจความปลอดภัยของเดเบียนลงใน apt:
echo 'deb http://deb.debian.org/debian-security/ buster/updates main contrib non-free' | sudo tee /etc/apt/sources.list.d/debian-security.list
คุณอาจจะต้องติดตั้งกุญแจฉลาดใหม่สำหรับพื้นที่เก็บข้อมูลเดเบียน
ตัวเลือกอื่น:
แก้ไขโดยใช้ cron-apt:
sudo apt install cron-apt
วิธีอื่นในการแก้ไข
ขอแนะนำให้ใช้การอัปเดตแบบไม่ต้องใส่ข้อมูลและแก้ไขแพ็กเกจเนื่องจากเหมาะที่สุดสำหรับวัตถุประสงค์ Cron-apt เป็นตัวเลือกที่ดีที่สุดที่สองของคุณเพราะมันถูกออกแบบมาเพื่อวัตถุประสงค์ที่คล้ายกัน ฉันไม่แน่ใจว่าสามารถรีบูตระบบของคุณโดยอัตโนมัติหลังจากอัปเดตเคอร์เนล การอัปเกรดแบบไม่ต้องใส่ข้อมูลมักจะมีตัวเลือกนั้น แต่ฉันไม่แน่ใจว่าสามารถใช้งานได้กับการแก้ไขด้านบน
/var/log/unattended-upgrades/unattended-upgrades.log
แฟ้มรายงานAllowed origins are: []
ดังนั้นโดยทั่วไปมันก็ไม่ได้ดึงการปรับปรุงใด ๆ ในการปรับปรุงหลังจาก./etc/apt/apt.conf.d/50unattended-upgrades
จะรวมถึง"origin=Raspbian,codename=${distro_codename},label=Raspbian";
การปรับปรุงเริ่มเข้ามาใน.