Как я могу поддерживать мой Raspbian «Wheezy» в актуальном состоянии?


45

Есть ли какой-нибудь инструмент обновления для моего пакета Raspbian Debian 7 (Wheezy)?

Я установил phpи lighttpd, и я хочу, чтобы они автоматически обновлялись для обнаружения ошибок.

Ответы:


48

Вам нужно ввести несколько команд в командную строку. Прежде всего:

apt-get update  

(это обновит источники программного обеспечения)

apt-get upgrade  

(это обновит все до последней версии)


Это все к этому? Будет ли он обновляться каждый раз, когда я устанавливал через apt-get, включая саму ОС?
— Мишель

1
Да, сама ОС - это ядро ​​Linux. В первый раз, когда вы сделаете это, вероятно, будет куча обновлений, так как хранилище обычно будет содержать более новые пакеты, чем установочный образ.
— Златовласка

Все, что пришло из репо, то есть. Обычно это все, кроме ваших данных, но может не включать, например, ядро ​​или загрузчик в этом случае. Если вы скачали что-то из другого места или сделали что-то свое, это, очевидно, не может быть автоматически обновлено :)
— XTL

Да, это все, что нужно сделать. Возможно, вам придется ответить на случайный вопрос «да / нет» для более крупных программ, но в основном это так просто.
— Рекантха

1
@Michel: Иногда «ОС Linux» в более широком смысле называют «GNU / Linux», которая включает ядро ​​(в строгом смысле «linux») и основы пользовательского пространства, такие как библиотека C, оболочка и т. Д., Которые находятся под зонт GNU. С окнами все эти части являются неотъемлемо интегрированными, в то время как мир Linux более гетерогенный и модульный, поэтому может возникнуть некоторая путаница. Я бы взял здесь «ОС» для обозначения дистрибутива Debian Wheezy (включая ядро), но вы, похоже, имели в виду нечто более конкретное.
— Златовласка

41

unattended-upgradesПакет является способом автоматизировать обновление ОС в этих Debian семейство распределений. Следуйте инструкциям, найденным здесь .

В основном вы должны установить пакет:

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

Что касается Распбиана Уизи, то сегодня это все еще необходимо, например: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-update теперь можно получить напрямую через 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

Как написать скрипт bash:

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.

Это спорный вопрос о том, как хорошо идея это сделать это, хотя!


Любой шанс, что вы могли бы поделиться сценарием и / или информацией о том, как делать эти события по времени. Я полагаю, если бы ОП знал, как это сделать, он бы не написал.
— Фил Хили

1

На сайте Art of Web есть замечательное руководство для Debian Wheezy, в котором мне нужно было всего лишь изменить одну строку, чтобы он работал над моим тестируемым RPi. Ссылка приведет вас к их путеводителю cron-apt; который был перефразирован ниже с объяснением модификации для системы репозиториев RPi.

Установите 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чтобы разрешить отправку электронных писем с подробной информацией о действиях, предпринятых во время автоматического обновления

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

Создайте новый файл действий для обновления только пакетов, связанных с безопасностью, с помощью сенсорной команды и добавьте одну строку с помощью команды sudo tee; другие будут загружены, но подождите, пока sys-admin установит обновления, не связанные с безопасностью. Уведомления об обновлениях и выводе будут отправлены пользователю root или 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

Создайте новый файл конфигурации для использования вышеуказанного действия; специально использовать /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, который обновляет только пакеты, связанные с безопасностью. Поэтому я чувствую, что это один из более портативных доступных вариантов. Другой пакет для автоматических обновлений, предложенный unattended-upgradesширокими массами (спасибо, я собираюсь протестировать его дальше), выглядит как еще один отличный вариант для автоматизации процесса обновления.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.