[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ B ] [ вперед ]


Информация о выпуске Debian GNU/Linux 3.1 (`sarge') для архитектуры PA-RISC
Глава 4 - Обновление с предыдущих выпусков


4.1 Подготовка к обновлению

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

В первую очередь необходимо сохранить резервные копии содержимого каталогов /etc и /var/lib/dpkg, а также вывод команды dpkg --get-selections "*" (кавычки необходимы).

Само по себе обновление никак не затрагивает каталог /home, но некоторые приложения (в частности, Mozilla и некоторые приложения KDE) при первом запуске новой версии перезаписывают пользовательские настройки настройками "по умолчанию". На всякий случай стоит заархивировать скрытые файлы и каталоги в домашних каталогах пользователей. Эта резервная копия поможет вам затем восстановить старые настройки, если это понадобится. Не лишним будет предупредить пользователей об этой проблеме.

Желательно заранее сообщить всем пользователям обо всех планируемых обновлениях, хотя пользователи, работающие в системе через SSH, не должны испытать особых проблем в процессе обновления и вполне могут продолжать работу. Если вы хотите принять дополнительные меры предосторожности, создайте резервную копию каталога с файлами пользователей (/home) или размонтируйте раздел, где он расположен, перед обновлением. Перезагрузка после обновления не потребуется, если вы, конечно, не планируете обновление ядра системы.

Обновление дистрибутива возможно как с локальной консоли (или подключённого напрямую последовательного терминала), так и через удалённое подключение ssh.

Внимание! Ни в коем случае не обновляйте систему через telnet, rlogin, rsh или из графического сеанса под управлением xdm, gdm, kdm и т.д., запущенного на обновляемой системе. Это связано с тем, что все эти серверы могут быть перезапущены при обновлении, что может привести к недоступности системы, обновлённой только наполовину.

Установка любого пакета должна производиться с привилегиями суперпользователя. Поэтому вы должны либо войти в систему под именем суперпользователя (root), либо использовать программы su или sudo.


4.2 Проверка состояния системы

Описываемая в этом разделе процедура обновления предназначена для обновления с "чистого" woody. Предполагается, что ваша система обновлена до последнего выпуска woody. Если это не так или вы в этом не уверены, следуйте инструкциям раздела Обновление системы woody, раздел B.1.


4.2.1 Отключение фиксации APT

Если вы настроили APT на установку некоторых пакетов из дистрибутива, отличного от стабильного (например, тестируемого), вам, возможно, придётся изменить конфигурацию APT (сохранённую в файле /etc/apt/preferences), чтобы было возможным обновление пакетов до версии в новом стабильном выпуске. Более подробную информацию о фиксации пакетов в APT можно найти в apt_preferences(5).


4.2.2 Проверка состояния пакетов

Независимо от способа обновления, рекомендуется сначала проверить состояние всех пакетов и убедиться, что все пакеты могут быть обновлены. Следующая команда покажет частично установленные (Half-Installed) пакеты, пакеты, настройка которых не удалась (Failed-Config), а также все пакеты в ошибочных состояниях.

     # dpkg --audit

Можно также проверить состояние всех пакетов системы с помощью программ dselect, aptitude или таких команд, как

     # dpkg -l | pager

или

     # dpkg --get-selections > ~/curr-pkgs.txt

Перед обновлением желательно снять все фиксации с пакетов. Если один из необходимых для обновления пакетов зафиксирован, обновление будет невозможно. Определить, какие пакеты зафиксированы, можно с помощью команды

     
     # dpkg --get-selections | grep hold

Если вы изменили и перекомпилировали пакет, при этом не переименовали его и не добавили "эпоху" ("epoch") в версию пакета, то чтобы предотвратить его обновление, нужно его зафиксировать. Состояние фиксации пакета ("hold") может быть изменено либо с помощью dselect (в меню выбора пакетов клавиши "H" - зафиксировать и "G" снять фиксацию), или заменив в файле, полученном из

     # dpkg --get-selections > ~/curr-sels.txt

"hold" на "install" (и наоборот), и затем выполнив

     # dpkg --set-selections < ~/curr-sels.txt

Если вам надо что-то изменить, то лучше сначала убедиться, что ваш sources.list всё ещё ссылается на woody, как объясняется в разделе Проверка списка источников APT, раздел B.2.


4.2.3 Неофициальные источники и адаптации (backports)

Если вы установили пакеты не из Debian, то знайте, что при обновлении они могут быть удалены по причине конфликтующих зависимостей. Если при установке пакетов вы добавляли записи в файл /etc/apt/sources.list, то стоит проверить, что этот источник содержит пакеты, скомпилированные для sarge и соответственно исправив строку источника вместе со строками остальных источников.

Некоторые пользователи установили более новые пакеты Debian, адаптированные для woody (backports). Такие пакеты, скорее всего, станут причиной проблем при обновлении, так как они могут вызвать конфликты файлов[1].В разделе Возможные проблемы во время обновления, раздел 4.5.5 описано, как бороться с конфликтами файлов, если они возникнут.


4.3 Проверка поддержки ядра

На 64-битных HPPA перед обновлением системы надо будет обновить ядро. Это вызвано тем, что новые версии glibc содержат команды процессора, которые на некоторых машинах недоступны, поэтому требуется обновлённое ядро, эмулирующее недостающие команды.


4.3.1 Обновление ядра

Если (и только в этом случае) в предыдущем разделе было сказано, что вам нужно обновить ядро перед обновлением системы, сделайте это прямо сейчас.

Все инструменты, необходимые для установки ядра sarge, доступны в адаптированном для woody виде. Подробные инструкции по установке нового ядра можно получить тут: Обновление ядра, Приложение A.


4.4 Подготовка источников APT

Перед началом процесса обновления вы должны настроить файл конфигурации apt /etc/apt/sources.list.

Программа apt при запросе на установку пакета установит наивысшую версию пакета из тех, которые можно найти в источниках, соответствующих строкам deb этого файла. При равных версиях приоритет будут иметь строки, находящиеся в файле выше (таким образом, в случае использования нескольких зеркал обычно лучше первым указать каталог на локальном жёстком диске, затем компакт-диск и, наконец, зеркала HTTP/FTP).

На выпуск Debian можно ссылаться по его кодовому имени (например, "woody" или "sarge") или по его статусу (например, "oldstable" ("старый стабильный"), "stable" ("стабильный"), "testing" ("тестируемый"), "unstable" ("нестабильный")). Ссылки на выпуск по его кодовому имени имеют то преимущество, что вы никогда неожиданно для себя не начнёте пользоваться новым выпуском. Поэтому мы здесь так и делаем. В этом случае, вам, конечно, придётся самим следить за новыми выпусками. Если вы будете ссылаться на дистрибутив по его статусному имени, то после выхода нового выпуска вы просто увидите большое количество обновлённых пакетов.


4.4.1 Как добавить Интернет-источник APT

Конфигурация по умолчанию позволяет произвести установку с главных серверов Debian, но вы можете изменить файл /etc/apt/sources.list и использовать другие зеркала. Лучше использовать ближайшее к вам (в смысле скорости передачи данных) зеркало.

Адреса HTTP- и FTP-зеркал Debian можно найти по адресу http://www.debian.org/distrib/ftplist (см. раздел "Полный список зеркал"). HTTP-зеркала обычно быстрее, чем FTP.

Допустим, к примеру, что ближайшим к вам зеркалом Debian является http://mirrors.kernel.org/debian. Просматривая содержимое зеркала web-браузером или FTP-клиентом, можно заметить, что основные каталоги организованы следующим образом:

     http://mirrors.kernel.org/debian/dists/sarge/main/binary-hppa/...
     http://mirrors.kernel.org/debian/dists/sarge/contrib/binary-hppa/...

Чтобы использовать это зеркало в программе apt, добавьте в файл sources.list следующую строку:

     deb http://mirrors.kernel.org/debian sarge main contrib

Обратите внимание на то, что `dists' добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

После того, как вы добавили новый источник, отключите присутствовавшие ранее в файле sources.list строки deb, поставив в начале каждой строки знак диеза (#).

Все пакеты, требуемые для установки, после загрузки из сети размещаются в каталоге /var/cache/apt/archives (во время загрузки -- в подкаталоге partial/), поэтому перед началом установки вы должны убедиться в том, что там достаточно места. Для обычной установки понадобится приблизительно 300МБ дискового пространства.


4.4.2 Как добавить локальное зеркало APT

Вместо HTTP- и FTP-зеркал, можно, изменив соответствующим образом файл /etc/apt/sources.list, использовать зеркало на локальном диске (возможно, смонтированном по сети).

Например, если ваше зеркало пакетов находится в каталоге /var/ftp/debian/. Тогда его основные каталоги будут называться:

     /var/ftp/debian/dists/sarge/main/binary-hppa/...
     /var/ftp/debian/dists/sarge/contrib/binary-hppa/...

Чтобы программа apt могла использовать этот источник пакетов, добавьте в файл sources.list строку

     deb file:/var/ftp/debian sarge main contrib

Обратите внимание на то, что `dists' добавляется автоматически, а параметры после имени выпуска используются для дополнения сетевого пути до реальных каталогов.

После того, как вы добавили новый источник, отключите присутствовавшие ранее в файле sources.list строки deb, поставив в начале каждой строки знак диеза (#).


4.4.3 Как добавить источник APT на компакт-диске или DVD

Если вы хотите использовать только компакт-диски, закомментируйте все присутствующие в файле /etc/apt/sources.list строки deb, поставив в начале каждой строки знак диеза (#).

Убедитесь в том, что в файле /etc/fstab есть строка, позволяющая смонтировать компакт-диск в каталог /cdrom (программа apt-cdrom требует монтирования именно в этом каталоге). Например, если файлом устройства вашего привода чтения компакт-дисков служит /dev/hdc, файл /etc/fstab должен содержать строку

     /dev/hdc /cdrom auto defaults,noauto,ro 0 0

Обратите внимание на то, что между словами defaults,noauto,ro в четвёртом поле строки не должно быть пробелов.

Чтобы проверить, что строка fstab написана верно, вставьте компакт-диск в привод и выполните команды

     mount /cdrom   # (монтирование компакт-диска)
     ls -alF /cdrom # (вывод содержимого корневого каталога компакт-диска)
     umount /cdrom  # (размонтирование компакт-диска)

Затем вставьте по очереди имеющиеся у вас диски и для каждого из них выполните команду

     apt-cdrom add

.


4.5 Обновление пакетов

Для обновления Debian GNU/Linux до нового выпуска рекомендуется использовать программу управления пакетами aptitude. Этот инструмент принимает более безопасные решения об установке пакетов, чем при непосредственном запуске apt-get.

Не забудьте смонтировать все необходимые разделы (в первую очередь, корневой раздел и каталог /usr) для чтения и записи. Это можно сделать командой

                 mount -o remount,rw /точка_монтирования

Затем надо проверить и перепроверить, что источники APT в файле /etc/apt/sources.list ссылаются либо на "sarge", либо на "stable". Обратите внимание, источники на CD-ROM могут ссылаться на дистрибутив "unstable", хоть это и странно, но исправлять их не нужно.

Настоятельно рекомендуем использовать программу /usr/bin/script для записи ваших действий при обновлении. В этом случае, при возникновении каких-либо проблем у вас будет журнал произошедших событий, и если понадобится, вы сможете включить эту информацию в отчёт об ошибке. Чтобы начать запись, выполните команду

     script -a ~/upgrade-to-sarge.typescript

Не размещайте файл с записью во временных каталогах, таких как /tmp и /var/tmp - файлы в этих каталогах могут быть удалены при обновлении или перезагрузке.

Запись также поможет вам прочитать информацию, которая была "промотана" за границу экрана. Просто переключитеcь на вторую консоль (нажав alt-F2) и, войдя в систему, запустите less ~root/upgrade-to-sarge.typescript для просмотра файла.

После завершения обновления, можно остановить script набрав exit в командной строке.


4.5.1 Обновление списка пакетов

Сначала нужно скачать список пакетов для нового выпуска. Это можно сделать, выполнив команду[2]

     # apt-get update

4.5.2 Установка aptitude

Пробные обновления показали, что версия aptitude из sarge разрешает сложные зависимости при обновлении лучше, чем apt-get и aptitude из woody. It should therefore be installed first using:

     # apt-get install aptitude

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

В некоторых случаях на этом шаге предлагается удалить большое количество пакетов. Можно попытаться сократить количество удаляемых пакетов, обновляя одновременно с aptitude что-нибудь ещё. Поясним на примере. При пробных обновлениях систем с установленным KDE этот шаг вызывал удаление многих пакетов KDE, зачастую вместе с perl. Решением в этом случае стал запуск install aptitude perl вместо install aptitude.


4.5.3 Обновление doc-base

Если doc-base установлен, то он обязательно должен быть обновлён перед обновлением остальной системы. Это вызвано тем, что одновременное обновление doc-base и perl может завершиться неудачей. Чтобы узнать, установлен ли doc-base, выполните команду

     # dpkg -l doc-base

Если первая буква в напечатанной строке - "i", то пакет установлен и должен быть обновлён в первую очередь.

     # aptitude install doc-base

4.5.4 Обновление остальной системы

Теперь можно приступить собственно к обновлению. Выполните команду

     # aptitude -f --with-recommends dist-upgrade

Эта команда произведёт полное обновление системы, т.е. установку последних доступных версий всех пакетов и разрешение всех изменившихся между выпусками зависимостей. При необходимости она установит новые пакеты (обычно это новые версии библиотек или переименованные пакеты) и удалит все вызывающие конфликты устаревшие пакеты (такие как console-tools-libs).

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

Новые версии уже установленных пакетов, которые нельзя обновить не меняя состояние других пакетов, не будут установлены (программа выведет сообщение, что пакет зафиксирован, "held back"). Разрешить ситуацию можно либо отметив такой пакет как подлежащий установке с помощью aptitude, либо выполнив команду aptitude -f install пакет.

Параметр --fix-broken (или просто -f) приведёт к тому, что apt будет пытаться сразу исправлять нарушенные зависимости. Система apt не позволяет, чтобы какие-либо зависимости в системе были не удовлетворены.


4.5.5 Возможные проблемы во время обновления

Если запуск aptitude, apt-get или dpkg завершается с ошибкой

     E: Dynamic MMap ran out of room

, то это значит, что размера кэша по умолчанию недостаточно. Проблему можно решить либо удалив ненужные записи в файле /etc/apt/sources.list, либо увеличив размер кэша. Увеличить размер кэша можно с помощью параметра APT::Cache-Limit в файле /etc/apt/apt.conf. Следующая команда увеличит кэш до размера, достаточного для обновления:

     # echo 'APT::Cache-Limit "12500000";' >> /etc/apt/apt.conf

(если эта переменная раньше не была указана в файле).

Иногда необходимо активизировать параметр APT::Force-LoopBreak, чтобы разрешить временное удаление пакета первой необходимости при возникновении циклической зависимости типа конфликт/требование предварительной установки. Программа aptitude сообщит об этом и прекратит обновление. Чтобы решить эту проблему, следует указать в командной строке aptitude параметр -o APT::Force-LoopBreak=1.

Возможна ситуация, когда структура зависимостей системы будет настолько нарушена, что потребуется ручное вмешательство. Обычно это означает, что нужно удалить "проблемные" пакеты с помощью aptitude или командой

     # dpkg --remove имя_пакета

или же запустить

     # aptitude --fix-broken install
     # dpkg --configure --pending

В чрезвычайных случаях вам может потребоваться принудительная переустановка пакета командой

     # dpkg --install /путь/к/пакету/имя_пакета.deb

При обновлении с "чистого" woody конфликтов файлов быть не должно, но они вполне возможны, если у вас установлены неофициальные адаптации (backports). Конфликт файлов вызывает ошибки вида

     Unpacking replacement <package-foo> ...
     dpkg: error processing <package-name-for-foo> (--unpack):
      trying to overwrite `<some-file-name>',
      which is also in package <package-bar>

Конфликт файлов можно попытаться разрешить принудительным удалением пакета, указанного в последней строке сообщения об ошибке:

     # dpkg -r --force-depends packagename

После исправления ошибок вы можете продолжить обновление, повторив ранее описанные команды aptitude.

Во время обновления система будет задавать вам вопросы о настройке или перенастройке некоторых пакетов. Если вас спросят, нужно ли заменить какой-то файл в каталоге /etc/init.d или /etc/terminfo или файл /etc/manpath.config версией, предоставленной сопровождающим пакета, обычно следует ответить`да', поскольку иначе будет нарушена целостность системы. Вы всегда сможете вернуть старые настройки, потому что файлы конфигурации будут сохранены с расширением .dpkg-old.

Если вы не уверены в том, что нужно делать, запишите имя пакета или файла и разберитесь с проблемой позднее. Информацию, выводившуюся на экран во время обновления, вы сможете найти в файле транскрипта.


4.6 Перед перезагрузкой

Когда команда aptitude dist-upgrade закончила работу, формально обновление завершено, но перед перезагрузкой следует проделать ещё несколько действий.

Прочтите подробную информацию об обновлении пакетов X Window System в файле /usr/share/doc/xfree86-common/README.Debian-upgrade.gz. Это относится к пользователям всех предыдущих выпусков. Вам обязательно надо его прочитать.


4.6.1 Обновление ядра

Имейте в виду, что ядро Linux при вышеописанных процедурах не обновляется. Вы можете сделать это самостоятельно, либо установив один из пакетов kernel-image-*, либо скомпилировав ядро из исходного кода.

Чтобы обновить ядро, вы должны выбрать ядро, подходящее для вашей субархитектуры. Список доступных ядер можно получить командой

     # apt-cache search ^kernel-image

Затем ядро нужно установить с помощью aptitude install. После установки ядра следует перезагрузить систему при первой возможности.

Следует заметить, что сиcтема установки woody и более старых выпусков не устанавливала ядро в качестве пакета в вашу систему. В sarge ситуация изменилась, теперь вы можете устанавливать псевдопакеты чтобы отслеживать смену ядер. Эти пакеты будут иметь имена вида kernel-image-ВЕРСИЯ-АРХИТЕКТУРА, где ВЕРСИЯ - номер версии ядра (2.4 или 2.6), а АРХИТЕКТУРА - любая из поддерживаемых архитектур.

Если вы не боитесь трудностей, то можете скомпилировать ядро самостоятельно из исходного кода. Установите пакет kernel-package и прочитайте документацию в каталоге /usr/share/doc/kernel-package.


4.7 Устаревшие пакеты

Вместе с появлением девяти тысяч новых пакетов, более двух тысяч пакетов из состава woody с появлением sarge устаревают. Устаревшие пакеты не включены в sarge и не больше будут обновляться. Ничто не мешает вам продолжить пользоваться этими пакетами, но приблизительно через год [3] после выхода sarge команда безопасности прекратит выпускать для них исправления. Мы рекомендуем перейти на использование альтернативных пакетов, если есть такая возможность.

Пакет может быть удалён из дистрибутива по многим причинам: разработка программы прекращена, пакет не интересен никому из разработчиков Debian, программа вытеснена другой, более функциональной программой или версией программы. Возможно, пакет содержит ошибки, из-за которых пока не может быть включён в sarge, в последнем случае пакет может быть доступен в нестабильном ("unstable") дистрибутиве.

Определить, какие пакеты устарели, очень легко, так как программы управления помечают их как "устаревшие". Если вы используете aptitude, полный список этих пакетов в разделе "Устаревшие и локально созданные пакеты". В программе dselect есть аналогичный раздел, но список пакетов в нём может несколько отличаться. Если в woody вы использовали aptitude для установки пакетов, то aptitude помнит, какие именно пакеты установили вы, и пометит как устаревшие пакеты, которые были установлены для удовлетворения зависимостей и которые больше не нужны, если пакет был удалён. В отличие от deborphan, aptitude не считает устаревшими пакеты, которые вы установили вручную, а не автоматически для удовлетворения зависимостей.

Существуют и другие инструменты для определения неиспользуемых пакетов, в их число входят deborphan, debfoster и cruft. Советуем использовать deborphan, хотя по умолчанию он ищет только ненужные библиотеки (пакеты в секциях "libs" и "oldlibs", от которых не зависит ни один другой пакет). Не удаляйте подряд все пакеты, найденные такими инструментами (в особенности, если при запуске вы указали опции, отличные от опций по умолчанию), чтобы не удалить что-нибудь нужное. Настоятельно рекомендуем перед удалением внимательно просмотреть список предложенных пакетов (прочесть описание, посмотреть входящие файлы).

В системе отслеживания ошибок Debian зачастую содержится дополнительная информация о причинах удаления пакета. Просмотрите архив сообщений об ошибках для интересуещего вас пакета а также архивированные ошибки для псевдо-пакета ftp.debian.org.


4.7.1 Пакеты-пустышки

Многие пакеты из woody в sarge были поделены на несколько разных пакетов, чаще всего чтобы облегчить поддержку системы. Для простоты обновления в состав sarge нередко входит пакет-"пустышка" (пустой пакет с именем старого пакета из woody). Такой пакет при установке устанавливает новые пакеты, от которых зависит. Сразу же после установки "пустышки" становятся неиспользуемыми и их можно спокойно удалять.

В описании большинства (но не всех) пакетов-пустышек ясно указано их предназначение. К сожалению, никаких правил для описания пустышек нет, поэтому для их обнаружения вам пожет пригодиться deborphan с опцией --guess. Некоторые пустышки удалять после обновления не нужно, так как они впоследствии используются для определения установленной версии программы.


[ назад ] [ Содержание ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ A ] [ B ] [ вперед ]


Информация о выпуске Debian GNU/Linux 3.1 (`sarge') для архитектуры PA-RISC

$Id: release-notes.ru.sgml,v 1.4 2005/06/02 21:42:40 jseidel Exp $

Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer, Rob Bradford (текущее издание), Frans Pop (текущее издание)
debian-doc@lists.debian.org