среда, 18 июня 2008 г.

Обновление Gentoo - часть вторая

Имеется установленная Gentoo и необходимо её обновить. Обновление может потребоваться по многим причинам, в первую очередь наверное психологическим, хочется работать на самом новом программном обеспечении и вовремя получить все новые возможности. Другие причины менее существенны, т.к. стабильность корректно настроенной системы (хоть Windows) в правильных руках ни когда не вызывает нареканий.

В установленной системе Gentoo существует некий перечень установленного программного обеспечения пользователем и общий перечень возможного программного обеспечения для установки, который и является самим деревом Portage.

Обновление Gentoo сводится к замене дерева Portage и последующей замене установленных программ на версии, которые актуальны на текущий момент.

Написать этот текст меня сподвигло разнообразие возможностей провести обновление Gentoo в зависимости от доступности интернет. Как получить обновленное дерево Portage?

Начнем с самого простого, когда на обновляемом компьютере есть непосредственный доступ в интернет. Простейшая команда:

# emerge --sync

После этого будет выполнено обновление. Получен перечень всех файлов Portage, найдены различия, скачаны новые файлы и удалены старые.

В случае доступности интернет только при использовании прокси, или в тех случаях когда стандартный --sync завершается ошибками, вроде невозможности скачивания файлов может помочь вариант обновления "через web".

# emerge-webrsync

Основное отличие данного варианта заключается в том, что работает через http и дерево Portage не обновляется, а заменяется полностью. Из интернет выкачивается архивированный образ Portage и распаковывается на компьютере с выполнение всех нужных процедур.

При этом, если необходимо указать прокси сервер, то нужно выставить переменную http_proxy:

# export http_proxy="http://имя:пароль@прокси:порт"

Рекомендую эту строку вставить в файл .bash_profile.

Дальше начинается экзотика, её необходимость возникает, когда отсутствует возможность доступа в интернет с обновляемого компьютера. На обновляемый компьютер необходимо каким либо образом перенести архив нового Portage. Получить его можно с любого из зеркал Gentoo. Вам нужен файл portage-200xxxxx.tar.bz.

В зависимости от вашего желание есть не менее одного пути =) дальнейших действий.

1. Разместить файл portage-200xxxxx.tar.bz в каталоге /usr и распаковать его, с последующем перестроением:

# tar xjvfp portage-2006ХХХХ.tar.bz2
# emerge regen

2. Перенести файл portage-200xxxxx.tar.bz в каталог /var/tmp/emerge-webrsync и выполнить команду:

# emerge-webrsync -n

В зависимости от выбранного и возможного метода обновления дерева Portage вы получите новый Portage, но старую систему. Обновление самой системы выполняется по команде:

# emerge -uvD world

Ключевое слово world означает, что будут обновлены все установленные вами пакеты и их зависимости. В результате обновления в системе могут оказаться ненужные на текущий момент пакеты, их можно удалить:

# emerge --depclean

Это действие может повлиять на уже установленные программы, в основном на используемые библиотеки. Не обновленным программам нужны старые библиотеки, а о существовании новых они не знают, по этому необходимо выполнить повторную сборку таких программ. Проделать эту процедуру проще всего запуском revdep-rebuild, которая входит в пакет gentoolkit.

# revdep-rebuild

Вот в общем и всё. Дерево Portage обновлено, все программы обновлены. В заключение скажу, что без доступа в интернет возиться с Gentoo самое неблагодарное занятие которое только можно придумать!

Комментариев нет: