Процедура, описанная ниже, может быть использована для обновления любой из предшествующих версий до версии 2.2 непосредственно; вам не нужно обновлять систему последовательно до каждой из промежуточных версий. Заметим однако, что обновления с версии 2.0 и более ранних до 2.2 не тестировались тщательно и, таким образом, не поддерживаются.
Обратная бинарная и по текстам совместимость GNU LibC 2.1 означает, что большинство программ предыдущей версии будут работать и в текущей (но не наоборот). Все пакеты Debian GNU/Linux 2.2 собраны для работы в новой среде. Старые программы, в большинстве, можно пересобрать в новом дистрибутиве без изменений. Однако, всегда бывают исключения, и некоторые из ваших программ могут потребовать модификации и/или перекомпиляции с новой версией glibc для корректной работы.
При работе с ядром 2.2 и glibc 2.1, система автоматически смонтирует
дополнительный виртуальный драйвер `devpts' для поддержки Unix98 PTYs, и
некоторые из ваших демонов (Unix-серверов) автоматически переключатся на
использование новых файлов устройств (/dev/pts/* вместо
/dev/ttyp*).
При работе с ядром 2.2.x, устройства печати PC именуются от lp0 вместо lp1, как
при работе с 2.0.x, так что вам нужно исправить printcap и другие файлы
настроек (/dev/lp0 вместо /dev/lp1,
/dev/lp1 вместо /dev/lp2 и т.д.).
Переход к новому ядру весьма прост, так как мы почти все к этому подготовили уже в версии 2.1. Однако, несколько замечаний сохранились, в основном касательно сети:
ipfwadm заменена
на ipchains. При обновлении пакета netbase вам будет
задан вопрос об установке ссылки на скрипт эмуляции, который обеспечит
функционирование вашего firewall; вы можете также прочесть
/usr/share/doc/netbase/ipchains-HOWTO.txt.gz и адаптировать
установки firewall к ipchains.
/etc/init.d/network настроенный прежней программой
установки Debian, выводит сообщения об ошибках при работе с новым ядром; это
может быть исправлено добавлением установкой опций `netmask' and `dev' при
вызове route в этом файле.
Вам необходимо прочитать Documentation/Changes из документации
ядра для получения более подробной информации по обновлению программ для работы
с новым ядром.
Использование PAM позволяет приложениям системы стать более цельными и
интегрированными. В большинстве случаев, новая конфигурация не отличается
внешне от старой, без PAM. Однако, не во всех случаях это так. Если изменения
необходимы, то вы можете установить пакет libpam-doc , содержащий
подробное описание библиотеки PAM, в том числе советы по изменению существующих
не-PAM приложений для поддержки новой модели аутентификации.
Большой частью работ по интеграции PAM было включение пакета
secure-su в главный пакет поддержки входа в систему. Обычная
программа su , входившая в пакет shellutils , теперь
находится в пакете login и, таким образом, интеграция PAM сделана
более полной и общесистемной. Если вы используете обычную программу
su, то не должны заметить никаких изменений при переходе на новую
версию. Однако, пользователи устаревшего пакета secure-su могут
проверить его настройки с тем, чтобы убедиться в их совместимости с новым PAM.
Обратите внимание, что настоящий дистрибутив содержит две версии Perl: 5.004 (в
пакетах perl-5.004* ) и 5.005 (в пакетах perl-5.005*
). Мы настоятельно рекомендуем использовать последнюю, более новую версию, и
удалит старую, которая сохранена только для совместимости и для удобства
программистов. [8] Если вы
используете любой модуль Perl из новых пакетов lib*-perl в ваших
скриптах, то установите ссылку /usr/bin/perl (используя
update-alternatives) на Perl 5.005, иначе возникнут проблемы.
Пожалуйста, заметьте, что архив Debian non-US слегка реорганизован для
отделения свободных программ от несвободных. Если вы уже используете пакет
apt для доступа к нему, то необходимо изменить строки для non-US в
файле /etc/apt/sources.list примерно так:
deb http://non-US.debian.org/debian-non-US potato/non-US main contrib non-free
Предыдущая версия inetd (из пакета netbase ) имела
ошибку. При остановке inetd , существующие соединения с
некоторыми внутренними сервисами не разрешали inetd
перезапуститься. Эта ошибка исправлена в текущем пакете netbase,
но старая версия ее имеет. Если вы обнаружите, что inetd не
перезапускается корректно, посмотрите на процессы inetd , которые
работают, или такие процессы "-discard" или "-echo". Если
у вас установлен пакет psmisc , то исполнение:
sed 's/[[:space:]][[:space:]]*/ /g' /etc/inetd.conf |
grep '^ *[^#]' | cut -d" " -f1,3 |
while read serv type; do
fuser -n $type $serv;
done
с правами root покажет вам, на какие процессы, использующие порты
inetd надо обратить внимание.
Сообщаем пользователям почтового сервера smail, что версия 2.2 не содержит
более этого пакета вследствие серьезных ошибок, обнаруженных при нашем
тестировании. Обновленные пакеты smail можно пока найти в нестабильной версии
дистрибутива или на http://www.fs.tum.de/~bunk/smail.html.
Новый пакет XFree86 и другие пакеты xserver-* , входящие в
настоящую версию, имеют улучшенную поддержку графического оборудования в
сравнении с предыдущей версией, особенно новых графических карт и акселерации.
Если вы не знаете, какой из пакетов с X-серверами выбрать, то попробуйте
программу xviddetect (из пакета xviddetect ), которая
выведет имя необходимого вам X-сервера, основываясь на информации, полученной с
шин PCI/AGP.
Пользователи Intel i810 должны иметь в виду, что для корректного
функционирования соответствующего X-сервера необходим модуль ядра, который не
поставляется в исходных текстах ядра. Его исходные тексты и инструкции по
компиляции и использованию можно найти на странице X Strike Force.
Если используемый вами X server обращается к обновленному хосту за сервисом
шрифтов xfs , то он потеряет соединение с сервером шрифтов, если
xfs будет остановлен. Это не критично, но неприятно. Замечание:
подобное может случиться и с другими демонами, будьте к этому готовы.
Следующие пакеты переименованы, как это показано ниже. В большинстве, если не во всех случаях, поля Conflicts:, Replaces: и Provides: (или даже пустые пакеты) обеспечат автоматическую установку и/или безопасные замену/удаление старых.
ada-rm -> gnat-doc
[9]
alsa-modules -> alsa-base
alsalib -> libasound0.4
ax25-utils -> libax25
blt8.0-unoff -> blt8.0
c-client-dev -> libc-client4.7-dev
console-tools-data -> console-tools
[10]
cti-ifhp -> ifhp
cwnn -> freewnn-cserver
cwnn-dev -> freewnn-cserver-dev
data-dumper -> perl-5.005-doc
dhcp-beta -> dhcp
dhcp-client-beta -> dhcp-client
dhcp-relay-beta -> dhcp-relay
egcc -> gcc
egcs-docs -> gcc-doc
emacspeak-bs-tcl, emacspeak-dt, emacspeak-dt-tcl -> emacspeak-ss
eterm-backgrounds -> eterm
fte-cfgdocs -> fte-docs
fvwm -> fvwm1
fvwm2 -> fvwm
gltt2 -> libgltt2
gltt2-dev -> libgltt2-dev
gmp2 -> libgmp2
gmp2-dev -> libgmp2-dev
gnome-gnobots -> gnome-gnobots2
gnome-gnothello -> gnome-iagno
gnome-gyahtzee -> gnome-gtali
gsl -> libgsl0
gsl-dev -> libgsl0-dev
gstep-base -> gstep-base0
gstep-base-dev -> gstep-base0-dev
gstep-extensions -> gstep-extensions0
gstep-gui -> gstep-gui0
gstep-gui-dev -> gstep-gui0-dev
gstep-guile -> gstep-guile0
gtkicq -> gnomeicu
intlfonts-arabic -> xfonts-intl-arabic
intlfonts-asian -> xfonts-intl-asian
intlfonts-chinese -> xfonts-intl-chinese
intlfonts-chinese-big -> xfonts-intl-chinese-big
intlfonts-european -> xfonts-intl-european
intlfonts-japanese -> xfonts-intl-japanese
intlfonts-japanese-big -> xfonts-intl-japanese-big
intlfonts-phonetic -> xfonts-intl-phonetic
ivtools -> ivtools-unidraw
kwnn -> freewnn-kserver
kwnn-dev -> freewnn-kserver-dev
lam -> lam-runtime
lesstifg-dbg -> lesstif-dbg
lesstifg-dev -> lesstif-dev
libapache-mod-auth-sys -> apache-common
libapache-mod-put -> apache-common
libatalk1 -> netatalk
libatalk1-dev -> netatalk-dev
libc6-doc -> glibc-doc
libdatecalc-perl -> libdate-calc-perl
libg++2.8.2-dev -> libg++2.8.1.3-dev
libgg0 -> libgii0
libgg0-dev -> libgii0-dev
libggi1 -> libgii0, libggi2
libgnome0 -> libgnomesupport0
libjpegg-dev -> libjpeg62-dev
liblockdev0-perl -> liblockdev1-perl
liblockdev0g-dbg -> liblockdev1-dbg
liblockdev0g-dev -> liblockdev1-dev
libmd5-perl -> libdigest-md5-perl
libpam0g-util -> libpam-runtime
libwcsmbs, wcsmbs-locale-ja -> locale-ja
libwine0.0.971116 -> libwine
libxml0 -> libxml1
maplay -> maplay3
mysql-base -> mysql-gpl-client, mysql-client
mysql-dev -> libmysqlclient6-dev
newt0.25-dev -> libnewt-dev
open -> console-tools
palmpython -> pyrite
perl -> perl5
perl-base -> perl5-base
popt -> libpopt0, libpopt-dev
ppp-pam -> ppp
[11]
ptx -> textutils
python-bsddb, python-curses, python-misc, python-net -> python-base
[12]
python-mysql -> python-mysqldb
python-pil -> python-imaging
r-pdl -> pdl
sgmlspm -> libsgmls-perl
smbfsx -> smbfs
sorcerer -> pccts
t1lib0-bin -> t1lib-bin
t1lib0-dev -> t1lib-dev
tcd -> gnome-media
timezones -> libc6
[13]
tm -> wemi
toshiba-fan, toshiba-hotkey -> toshutils
v-bin -> libv-bin
v-dbg -> libv-dbg
v-dev, vm-dev -> libv-dev
v1g -> libv1.22
vnc-doc -> xvncviewer, vncserver
wcsmbs-locale-ko -> locale-ko
wnn -> freewnn-jserver
wnn-common -> freewnn-common
wnn-dev -> freewnn-jserver-dev
www-search -> libwww-search-perl
wxxt1 -> libwxxt1
wxxt1-dev -> libwxxt-dev
xfntbig5p-cmex24m -> xfonts-cmex-big5p
xfntil2 -> xfonts-biznet-iso-8859-2-{base,75dpi,100dpi}
xntp3-doc -> ntp-doc
xpm-bin -> xpm4g-dev
[14]
Несмотря на то, что мы старались сделать этот список исчерпывающим, он может быть не полон.
Между версиями 2.1 (`slink') и 2.2 (`potato'), некоторые пакеты были разделены на два и более пакетов. Основанием для такого деления, в целом, является то обстоятельство, что оригинальный пакет предоставляет большой набор функций, но лишь немногие из них используются большинством пользователей. Некоторые пакеты будут показывать сообщение о разделении во время установки, некоторые содержат предупреждение в описании, а некоторые просто игнорируют это обстоятельство.
Если вы обнаружите, что пакет потерял часть функциональности, посмотрите на
список, приведенный ниже, для восстановления нужной функциональности. Если это
не удастся, проверьте список изменений пакета, который можно найти в
/usr/doc/package/changelog.Debian.gz.
Это список пакетов, которые были разделены (возможно неполный):
gmc:
mc
gmc
mc-common
[15]
libpgtcl:
libpgtcl
pgaccess
mozilla:
mozilla
libnspr3
libnspr3-dev
netbase:
netbase
tcpd
libwrap0
libwrap0-dev
netstd:
bootp
bootparamd
bootpc
finger
fingerd
fping
ftp
ftpd
icmpinfo
pidentd
rdate
rdist
routed
rsh-client
rsh-server
ruptime
rusers
rusersd
rwall
rwalld
rwho
rwhod
tftp
tftpd
traceroute
wdsetup
[16]
perl-base:
perl-base
perl-5.004-base
perl-5.005-base
[17]
perl:
perl-5.004
perl-5.004-doc
perl-5.005
perl-5.005-doc
[18]
postgresql:
postgresql
postgresql-client
postgresql-test
vim:
vim
vim-gtk
[19]
перед обновлением системы настоятельно рекомендуется сделать ее полную резервную копию, или, по крайней мере, копию всех данных и файлов настроек, которые нежелательно потерять. Средства обновления весьма надежны, но сбой оборудования в течение этого процесса может разрушить систему.
Главный совет - сохраните содержимое каталогов /etc,
/var/lib/dpkg и вывод dpkg --get-selections.
Очень важно сообщать всем пользователям о предстоящих обновлениях, несмотря на
то, что, по крайней мере, пользователи имеющие доступ по ssh ничего не заметят
и смогут продолжать работу. Если вы хотите быть особо осторожным, то сделайте
резервную копию ил размонтируйте разделы пользователей (/home)
перед обновлением.
Обновление дистрибутива должно производиться локально из текстовой виртуальной
консоли (или подсоединенного напрямую последовательного терминала) или удаленно
через ssh .
Вы не должны обновлять систему, используя telnet,
rlogin, rsh или из сеанса X, управляемого
xdm на обновляемой системе. Это объясняется тем, что каждый из
этих сервисов может быть остановлен при обновлении, что приведет к
недоступности наполовину обновленной системы.
Независимо от метода обновления, рекомендуется вначале проверить статус всех пакетов и убедиться, что все они являются обновляемыми. Для этого можно выполнить:
dpkg -l | pager
или
dpkg --get-selections > filename
(и затем исследовать filename), или проверить статус при помощи
dselect.
Все операции по установке должны выполняться с привилегиями суперпользователя,
так что войдите в систему как root или используйте su или
sudo для получения соответствующих прав.
Настоятельно рекомендуется использовать программу /usr/bin/script
для записи описания сеанса обновления. [20] В этом случае, если случится неприятность, вы будете иметь
полное описание произошедшего и, при необходимости, сможете послать сообщение
об ошибке. Для начала записи, исполните:
script -a /upgrade-2.2.typescript
или что-то вроде этого. Запомните, что нельзя помещать typescript-файл во
временный каталог (такой как /tmp или /var/tmp).
Очень важно удалить все задержанные (hold) пакеты перед обновлением. Если
пакет, существенный для обновления, задержан, то обновление не удастся. Если
вы изменили или пересобрали пакет локально, и при этом не переименовали его и
не изменили поле epoch в версии, то, напротив, необходимо присвоить ему статус
задержанного, чтобы предохранить от обновления. Статус задержанного (`hold')
пакета может быть изменен при помощи dselect (в меню Select,
используйте клавиши `H' и `G' для установки и снятия этого статуса
соответственно) или выполнив
dpkg --get-selections > filename
отредактировав filename для изменения "hold" на
"install" и затем, с правами root, выполните
dpkg --set-selections < filename
Может быть неплохой идеей присвоить пакету ssh статус задержанного
(`Hold') (если установлен), так как иначе он будет заменен на OpenSSH (новый
пакет ssh ), который пока имеет немного другой файл настроек, что
может привести к неудачному запуску sshd после обновления.
Задержкой этого пакета вы обеспечите доступность системы; вы можете разрешить
эту проблему позже, или установить пакет ssh-nonfree , который
полностью совместим с прежним, но пока не свободен. (Замечание: даже если
обновляться без `Hold', существующие соединения будут сохранены.)
Обратите внимание, что пакет ssh в этой версии по умолчанию
запрещает вход root. Если вас не устраивает это, то установите опцию
PermitRootLogin в файле /etc/ssh/sshd_config в
yes после обновления. (Чтобы dpkg не обновила файл, установив
новые умолчания, вы можете просто его изменить. Достаточно добавить пустую
строку.)
Важно, чтобы каталог /etc/rcS.d существовала до обновления; иначе
установка пакета libc6 не удастся.
Не забудьте смонтировать все необходимые разделы (в частности root и
/usr ) в режиме read-write, с помощью команд типа:
mount -o remount,rw /mountpoint
Каталог /usr/share/doc (если он уже существует) не должен быть
ссылкой (например, на /usr/doc), так как это не даст установить
некоторые пакеты. Напротив, ссылка /usr/doc на
/usr/share/doc допустима. Заметьте, что при наличии такой ссылки
вы получите несколько сообщений о каталоге /usr/doc , который не
удается удалить. Это нормально, вы можете спокойно игнорировать эти сообщения.
Рекомендуемый метод обновления - использование apt-get напрямую,
как описано в следующей главе. APT - это следующее поколение программ
управления пакетами Debian, он позволяет производить обновление и установку
очень просто.
Вы не должны выполнять большие обновления пакетов с помощью
умалчиваемого метода доступа в dselect, потому что он, в отличие
от метода apt не выполняет все логические проверки пакетов при
установке и, таким образом, не столь надежен. Кроме того, такой способ
обновления меньше тестировался.
Если вы хотите обновляться с использованием CD-ROM, или если вы обновляетесь с
Debian GNU/Linux версии 2.0 или более ранней, то вам нужны пакеты
apt и dpkg , доступные в каталоге http://http.us.debian.org/debian/dists/potato/main/upgrade-i386/
на вашем зеркале Debian или в каталоге upgrade/ на первом CD-ROM
вашего комплекта CD Debian 2.2. Загрузите и установите эти пакеты в указанном
порядке:
dpkg -i dpkg_1.6.13_i386.deb
dpkg -i apt_0.3.19_i386.deb
Это специально собранные статические версии, которые, могут быть установлены (и работать) на любой Debian-системе.
Если вы обновляетесь с Debian GNU/Linux версии 2.1 (любого выпуска) с
использованием сети (FTP, HTTP) или локального зеркала (возможно раздела диска
или смонтированного раздела NFS), то используйте пакеты apt и
dpkg , которые есть в этой версии. Конечно, если пакет
apt не установлен (по умолчанию он не устанавливается), то
установите его.
Обратите внимание, что при обновлении с комплекта CD с любой
версии Debian вам необходимы статические версии пакетов apt и
dpkg , как описано выше.
Рекомендуем почитать страницы man apt-get(8) и
sources.list(5). Если вы установили статические версии пакетов
apt и dpkg, то можете получить доступ к этим
страницам man только командами типа man -l
/usr/share/man/man8/apt-get.8.gz до тех пор, пока пакет
man-db не обновлен.
Перед началом обновления вы должны создать файл настроек apt's для
списка пакетов, /etc/apt/sources.list.
apt учтет все пакеты, найденные по адресам из строк
"deb" , и установит пакеты с наибольшими номерами,
отдавая приоритет источнику, указанному ранее (таким образом, при наличии
нескольких источников, обычно вначале указывают локальный диск, затем CD-ROM, и
потом зеркала FTP/HTTP).
Умалчиваемая конфигурация предусматривает установку с наших главных
Internet-серверов, но вы можете желать изменить
/etc/apt/sources.list для использования других зеркал, поблизости
от вас. В этом случае, поставьте знаки комментария (#I в начале
существующих строк файла sources.list.
Адреса зеркал Debian FTP или HTTP можно найти на http://www.debian.org/distrib/ftplist
(см. раздел "Full list of mirrors").
Например, пусть ваше ближайшее зеркало - ftp://alea.iacta.est/debian/ При проверке этого зеркала web-броузером или ftp-клиентом, вы обнаружили каталоги:
ftp://alea.iacta.est/debian/dists/potato/main/binary-i386/...
ftp://alea.iacta.est/debian/dists/potato/contrib/binary-i386/...
Для использования этого зеркала программой apt, добавьте такую
строку к вашему файлу sources.list :
deb ftp://alea.iacta.est/debian potato main contrib
Заметьте, что `dists' будет добавлен автоматически, и аргументы, начиная с третьего, используются для указания путей к нескольким каталогам.
Если зеркало содержит также каталог non-US/* в дереве ftp://alea.iacta.est/debian/debian-non-US, то добавьте также строку:
deb ftp://alea.iacta.est/debian/debian-non-US potato/non-US main contrib
Все пакеты, необходимые для установки и загружаемые из сети хранятся в
/var/cache/apt (и подкаталоге partial/ во время
загрузки), так что убедитесь в наличии достаточного места перед попыткой начала
установки. Для расширенной установки вы должны ожидать не менее 300 MB
загруженных данных.
Замечание: если вы используете статические версии пакетов apt и
dpkg, то hostname-lookup не работает (что есть еще один повод
использовать пакет apt из slink при обновлении по сети). Для
решения этой проблемы указывайте IP-адреса зеркал в строках
"deb". (Используйте nslookup some-server)
Вместо использования зеркал FTP или HTTP, вы при желании можете модифицировать
файл /etc/apt/sources.list для использования зеркала на локальном
диске (возможно, раздела NFS). В этом случае, поставьте знаки комментария
(#) в первых позициях строк "deb" в файле
sources.list.
Например, ваше зеркало пакетов находится в /var/ftp/debian/, и
имеет такие главные каталоги:
/var/ftp/debian/dists/potato/main/binary-i386/...
/var/ftp/debian/dists/potato/contrib/binary-i386/...
Для использования их программой apt, добавьте такие строки к
вашему sources.list :
deb file:/var/ftp/debian potato main contrib
Заметьте, что `dists' будет добавлен автоматически, и аргументы, начиная с третьего, используются для указания путей к нескольким каталогам.
Если зеркало содержит также каталог non-US/* в дереве
/var/ftp/debian-non-US, то добавьте также строку:
deb file:/var/ftp/debian-non-US potato/non-US main contrib
Вначале вы должны установить последнюю версию пакетов apt и
dpkg , как описано выше.
Если вы хотите использовать только CD, то поставьте знаки комментария
(#) в первых позициях строк "deb" в файле
sources.list.
Убедитесь, что в вашем файле /etc/fstab есть строка,
обеспечивающая монтирование CD-ROM на /cdrom (только точка
монтирования /cdrom позволит использовать программу
apt-cdrom). Например, если /dev/hdc - ваш дисковод
CD-ROM, то файл /etc/fstab должен содержать строку наподобие:
/dev/hdc /cdrom auto defaults,noauto,ro 0 0
Заметим, что не должно быть пробелов между словами defaults,noauto,ro в четвертом поле.
Для проверки, вставьте CD и попробуйте
mount /cdrom (this will mount the CD to the mount point)
ls -alF /cdrom (this should show the CD's root directory)
umount /cdrom (this will unmount the CD)
Далее, запустите:
apt-cdrom add
для каждого из Debian Binary CD-ROM, чтобы добавить сведения о каждом CD в базу данных APT.
Если вы создали необходимый для apt файл
sources.list, то, с правами root, выполните:
apt-get update
Это позволит синхронизировать описание пакетов с указанными источниками, обновить информацию о новых и обновленных пакетах.
Некоторые люди предпочитают такую команду
apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager
для того, чтобы посмотреть на происходящее. Это займет некоторое время, но может помочь избежать сюрпризов. Такая команда сообщит вам, что плохо в вашей системе (и как это исправить), или, более вероятно, что произойдет в процессе обновления. Обратите особое внимание на пакеты, которые будут удалены; никаких важных пакетов среди них быть не должно.
После проверки работоспособности apt-get , запустите:
apt-get --fix-broken --show-upgraded dist-upgrade
Эта команда осуществит полное обновление системы, т.е. установку всех доступных новых версий пакетов и разрешит все возможные зависимости пакетов разных версий. Если необходимо, она установит несколько новых пакетов (обычно новых версий библиотек, или удаленных пакетов) и удалит конфликтующие устаревшие пакеты.
При обновлении с комплекта CD-ROM, программа попросит вас вставлять нужные CD несколько раз в процессе обновления. Возможно, вам придется вставлять один и тот же CD несколько раз; это объясняется перекрестными ссылками пакетов с разных CD.
Новые версии установленных пакетов, которые не могут быть обновлены без
изменения статуса установки другого пакета останутся в своей текущей версии
(будут отображены как "held back"). Несмотря на это, может оказаться
необходимо при помощи dpkg или dselect удалить или
переустановить несколько испорченных пакетов или зависимостей. В качестве
альтернативы можно использовать apt-get dselect-upgrade после
apt-get -f dist-upgrade. (См. страницу man
apt-get(8).)
Опция --fix-broken (или просто -f) заставляет
apt попытаться скорректировать систему с нарушенными
зависимостями. apt делает невозможным существование нарушенных
зависимостей в системе.
Иногда бывает необходимо разрешить опцию APT::Force-LoopBreak в APT для
возможности временно удалить важный пакет с целью разрешения цикла
Conflicts/Pre-Depends. apt-get сообщит вам об этом и прервет
обновление. Вы можете обойти этот случай, указав опцию -o
APT::Force-LoopBreak=1 в командной строке apt-get .
Возможно, что структура зависимостей системы настолько испорчена, что
понадобится "ручное" вмешательство. Обычно это означает
использование dselect или
dpkg --remove packagename
для удаления некоторых пакетов - нарушителей или
apt-get --fix-broken --show-upgraded install
dpkg --configure --pending
В крайнем случае вы можете произвести переустановку пакета при помощи команды типа
dpkg --install /path/to/packagename.deb
После этих действий, вам необходимо продолжить обновление, используя описанную выше команду dist-upgrade .
Во время обновления, программа спросит вас о настройке или перенастройке
некоторых пакетов. Когда/если вы получите вопрос об замене файлов в каталогах
/etc/init.d или /etc/terminfo или замене файла
/etc/manpath.config , то как правило, необходимо ответить `yes'
для сохранения согласованности компонентов системы. Вы всегда сможете
вернуться к старым версиям этих файлов, так как они сохраняются с расширением
.dpkg-old extension.
Если вы не уверены в том, что делаете, то запишите имя пакета или файла и отложите анализ ситуации на более позднее время. Вы сможете поискать информацию в журнале, чтобы осмыслить сообщения на экране во время обновления.
Когда apt-get dist-upgrade отработает, то "формально" обновление завершено, но есть еще несколько действий, которые должны быть выполнены из осторожности, перед последующей перезагрузкой.
Очень важно, чтобы пакеты locales и util-linux были
установлены. Это можно сделать так:
apt-get install locales util-linux
Если вы обновляетесь с Debian версии 2.0 или более ранней, то при этом будет
удален пакет getty , так как getty теперь в пакете
util-linux .
Возможно есть еще несколько пакетов, которые надо установить, но которые не
замечены apt-get, потому что apt-get не выбирает
автоматически пакеты, от которых не зависят другие (например, пакеты в полях
Recommends: и Suggests: ). Нужные пакеты можно легко найти при помощи
dselect или другой программы с экранным интерфейсом. В
dselect, выберите метод `apt' в экране [A]ccess и обновите базу
данных информацией о новых пакетах, используя опцию [U]pdate. После этого, на
экране [S]elect нажимайте `o', `o', `v' и Shift-d, и ищите заголовок
--- Obsolete and local packages present on system ---
В этом разделе, все такие пакеты будут показаны. Например, старые пакеты
gimp-smotif и gimp-dmotif заменены на
gimp в Debian GNU/Linux 2.1. Вы можете сразу установить новые
пакеты при помощи dselect (который покажет вам экран
"dependency conflict resolution"), говорящий о том, что старые пакеты
должны быть удалены, или используя:
apt-get install gimp
который одновременно удалит старые пакеты (вам просто надо подтвердить это).
Другой пример, который часто не показывает даже dselect, это
telnet, клиент и сервер talk, и сервер NFS, которые были выведены из старого
пакета netstd . Вы можете установить их с помощью командной
строки:
apt-get install telnet telnetd talk talkd nfs-server
То же относится к пакету manpages-dev, который выделен из пакета
manpages.
Посмотрите, пожалуйста, документ Release Notes для Debian GNU/Linux 2.1 для подробной информации о том, какие пакеты были разделены в этой версии.
Если вы обновляетесь с Debian версии 2.0 или более ранней, и у вас установлена X Window System , выполните такие команды:
apt-get remove xbase
apt-get install xfonts-base xfonts-75dpi xfonts-100dpi xfonts-scalable
И если вы не хотите запуска xdm при загрузке ("X
autostart"), то выполните:
apt-get remove xdm
Вы можете почитать /usr/doc/xfree86-common/README.Debian-upgrade
для более подробного описания, но, возможно, больше ничего делать не надо.
Система конфигурации модулей ядра изменилась после Debian GNU/Linux версии 2.0.
Если вы обновляетесь с Debian 2.0 или более ранней, то необходимо
конвертировать вашу систему перед перезагрузкой. Обычно запуска
update-modules force бывает достаточно; несмотря на это чтение
страницы man update-modules(8) рекомендуется.
В случае, если вы обновляетесь с Debian GNU/Linux версии 1.x (т.е. меньше чем
2.0), - старая система использует библиотеку `libc5', а новая обновляет систему
до `libc6'. Новая библиотека меняет формат файлов utmp и
wtmp ; вы можете проверит это, попробовав команду
last . Для решения этой проблемы необходима перезагрузка, но
вначале скопируйте один из старых файлов и очистите оба, при помощи команд:
cd /var/log
mv wtmp wtmp.libc5
touch wtmp
cd /var/run
cp /dev/null utmp
Затем перезагрузите систему (замечание: это не нужно для обновления с
Debian версии 2.0 и выше!). После перезагрузки, программа last
будет снова показывать верные данные.
Обратите внимание, что ядро Linux не было обновлено в ходе описанных
процедур. Вы можете сделать это сами, установив один из пакетов
kernel-image-* или собрав собственное ядро из исходных текстов.
Наслаждайтесь вашей новой системой Debian GNU/Linux 2.2 system! :-)
debian-doc@lists.debian.org