update-world

Полезные советы

Простейший путь обновления своей системы

Без сомненья, одна из лучших возможностей Gentoo — это его система управления пакетами, Portage. С помощью Portage очень легко обновить всю вашу систему одной командой. Но как это ни печально, все может пройти не так гладко, как хотелось бы. Практически каждый пользователь Gentoo, напечатав emerge -uD world и уйдя спать, мечтет проснуться утром с системой с иголочки. К сожалению, более вероятно, проснувшись, обнаружить emerge, споткнувшийся на третьем пакете из 220. И начинается борьба с проблемами и процесс emerge --resume.

Введите update-world, чтобы сэкономить день. Update-world — это сценарий bash, недавно созданный count_zero и выложенный на форумах. Сценарий управляет ходом обновления и заставляет portage пропускать неудачные сборки, продолжая собирать пакеты, пока список обновлений не закончится. Неудачные сборки добавляются в список, который можно просмотреть, когда процесс обновления завершится.

Примечание: Сценарий зависит от команды equery, входящей в пакет app-portage/gentoolkit.

Безусловно, прежде чем запустить сценарий, его нужно скачать, записать в пределах видимости из $PATH и сделать исполняемым.

Листинг 3.1: Получение сценария

# wget -O /usr/bin/update-world http://countzero.amidal.com/files/update-world
# chmod +x /usr/bin/update-world

Теперь мы сможем использовать сценарий.

Листинг 3.2: Запуск update-world

# update-world --prepare

Так, с создания списка пакетов для установки, порождаемого emerge -uD --newuse world, начинается процесс установки. (Или же, вы можете использовать update-world --empty, чтобы создать список всех пакетов в системе, подобно emerge -e world). Эта команда создает список с именем 'emergelist' в ~/.update-world/. Теперь вы можете в помощью любимого редактора изменить его, как нравится — удалить пакеты, изменить версии и так далее. Закончив с emergelist, можете приступать к следующему этапу:

Листинг 3.3: Запуск update-world (продолжение)

# update-world --install

Фактически эта команда начинает процесс сборки, как если бы вы ввели emerge -uD world. Отличие заключается в том, что если пакет не соберется по той или иной причине — он будет добавлен в список 'failedlist' в ~/.update-world/. Также в ~/.update-world/[дата]/log/ создается ссылка на журнал portage этого пакета (обычно находящийся в /var/log/portage). Как только процесс завершится, у вас сразу будет полный список сбойных пакетов, что сэкономит массу времени. Если понадобится остановить процесс, просто нажмите 'Control-C', чтобы прервать его. Процесс обновления можно перезапускать с того же места, где он был остановлен, вводом команды update-world --install.

http://www.gentoo.org/news/ru/gwn/20061204-newsletter.xml
http://forums.gentoo.org/viewtopic-t-497125.html