Hiện tại, để cập nhật mọi thứ trên Raspberry Pi của tôi, tôi phải nhập sudo apt-get update
và sudo apt-get upgrade
. Có cách nào để thiết lập nó để tự động làm điều này không? Tôi đang chạy Raspbian Jessie.
Hiện tại, để cập nhật mọi thứ trên Raspberry Pi của tôi, tôi phải nhập sudo apt-get update
và sudo apt-get upgrade
. Có cách nào để thiết lập nó để tự động làm điều này không? Tôi đang chạy Raspbian Jessie.
Câu trả lời:
thay vì một cron thủ công, bạn có thể cài đặt unattended-upgrades
, rất hữu ích để đảm bảo các hạt nhân mới nhất được cài đặt. Nó chủ yếu được thiết kế để bảo mật.
https://wiki.debian.org/UnattendsUpgrades
apt-get install unattended-upgrades
Có một số bit có thể được điều chỉnh / cấu hình, nhưng mặc định là tốt.
50unattended-upgrades
danh sách "origin=Debian,codename=${distro_codename},label=Debian-Security";
và nó xuất hiện để tìm các gói có liên quan một cách chính xác. Tất nhiên nó bỏ qua nhiều người trong số họ. Tôi đã không thiết lập bất kỳ danh sách trắng hoặc đen.
50unattended-upgrades
là thực sự ngu ngốc và phải được thay đổi để hoạt động trên Raspian. Không có Raspian-Security
. Cập nhật bảo mật không được dán nhãn. Điều quan trọng là phải thêm cả "origin=Raspbian,codename=${distro_codename},label=Raspbian";
và "origin=Raspberry Pi Foundation,codename=${distro_codename},label=Raspberry Pi Foundation";
vào/etc/apt/apt.conf.d/50unattended-upgrades
Trong một thiết bị đầu cuối, gõ:
sudo su
Để truy cập một dấu nhắc cấp gốc. Sau đó chạy:
crontab -e
Để bắt đầu chỉnh sửa crontab của bạn, một bảng các tác vụ sẽ tự động chạy tại một thời điểm nhất định. Nó sẽ mở trong trình soạn thảo văn bản ưa thích của bạn. Sửa đổi nó để bao gồm các dòng sau:
0 7 * * 1 apt update && apt upgrade -y
Để tự động cập nhật và nâng cấp ứng dụng của bạn vào lúc 7 giờ sáng thứ Hai. Đọc trên crontab để xem cách điều chỉnh theo ý thích của bạn.
&&
vì chúng có liên quan và không có lý do gì để thực hiện 'nâng cấp' nếu 'cập nhật' thất bại.
0
có nghĩa là Chủ nhật nhưng trong mã của bạn, bạn đã đặt 1
để lệnh sẽ được chạy vào Thứ Hai, không phải Chủ Nhật
dist-upgrade
tốt hơn là upgrade
, bạn sẽ kết thúc với các phụ thuộc bị hỏng chỉ sử dụng upgrade
. Bạn cũng sẽ không nhận được xung quanh các bản cập nhật yêu cầu xác nhận hộp thoại. @ tedder42 đã chỉ ra phương pháp được Debian ưa thích (sử dụng unattended-upgrades
).
sudo
trong đó; bạn đã chuyển sang root
tài khoản bằng cách sử dụng su
. Crontab của siêu nhân được điều hành với các đặc quyền siêu người dùng.
Bạn có thể cài đặt và cấu hình cron-apt. Cài đặt nó bằng cách làm như sau:
apt-get install cron-apt
tập tin cấu hình chính là / etc / cron-apt / config
Một điều tôi thêm vào cấu hình của mình là:
MAILON="always"
điều này sẽ gửi email mỗi khi nó chạy, không chỉ khi nó gặp lỗi.
Lưu ý rằng thiết lập mặc định sẽ không tự động cài đặt các bản cập nhật (có một số lý do chính đáng để không làm điều này), nhưng bạn có thể cấu hình nó để làm như vậy. Một lợi thế mà chương trình này cung cấp cho một giải pháp cron đơn giản là nó cho phép bạn kiểm soát những gì được cài đặt (chỉ tải xuống các gói mới, cài đặt các bản cập nhật bảo mật hoặc cài đặt tất cả các bản cập nhật).
Để đặt thời gian nó chạy chỉnh sửa tệp /etc/cron.d/cron-apt.
Bạn có thể tìm thêm thông tin và tùy chọn cấu hình ở đây
Gói bao gồm tài liệu rất tốt, tuy nhiên nó được nén. Để giải nén tập tin:
Trong cấu hình mặc định của nó, unattended-upgrades
bị hỏng trong Raspbian Buster. Nó sẽ không cài đặt các bản cập nhật quan trọng cho kernel và phần mềm khác. Lựa chọn của bạn là:
Tùy chọn đề xuất:
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
Để cập nhật bảo mật nhanh hơn (nhưng kém ổn định hơn, vì các gói chưa được phê duyệt cho rasbian), bạn có thể thêm các gói bảo mật debian vào 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
Bạn có thể sẽ cần phải cài đặt các khóa apt mới cho kho lưu trữ debian .
Sự lựa chọn khác:
Làm việc xung quanh nó bằng cách sử dụng cron-apt:
sudo apt install cron-apt
Những cách khác để làm việc xung quanh nó.
Bạn nên sử dụng các bản cập nhật không giám sát và sửa lỗi gói, vì nó phù hợp nhất cho mục đích này. Cron-apt là tùy chọn tốt thứ hai của bạn, bởi vì nó cũng được thiết kế cho mục đích tương tự. Tôi không chắc có thể tự động khởi động lại hệ thống của bạn sau khi cập nhật kernel. Nâng cấp không giám sát thường có tùy chọn đó, nhưng tôi không chắc nó hoạt động với bản sửa lỗi ở trên.
/var/log/unattended-upgrades/unattended-upgrades.log
tệp đã báo cáoAllowed origins are: []
nên về cơ bản nó không lấy bất kỳ bản cập nhật nào. Sau khi cập nhật/etc/apt/apt.conf.d/50unattended-upgrades
để bao gồm các"origin=Raspbian,codename=${distro_codename},label=Raspbian";
bản cập nhật bắt đầu.