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

45

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

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

Мишель
источник

Ответы:

48

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

apt-get update  

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

apt-get upgrade  

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

recantha
источник
Это все к этому? Будет ли он обновляться каждый раз, когда я устанавливал через 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";

Теперь ваша система автоматически обновляется.

Grassroot
источник
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-обновление

BastianW
источник
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.

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

Steji
источник
Любой шанс, что вы могли бы поделиться сценарием и / или информацией о том, как делать эти события по времени. Я полагаю, если бы ОП знал, как это сделать, он бы не написал.
Фил Хили
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широкими массами (спасибо, я собираюсь протестировать его дальше), выглядит как еще один отличный вариант для автоматизации процесса обновления.

S0AndS0
источник