From Fedora Project Wiki

< Upgrading Fedora using package manager

Revision as of 09:48, 21 December 2011 by Mamasun (talk | contribs) (добавила и почти полностью перевела новые общие рекомендации)


Эта страница содержит инструкцию по обновлению Fedora с помощью yum.


Рекомендованный метод установки с помощью загрузочного носителя с установщиком Anaconda описан в Инструкции по установке EN. PreUpgrade является другим способом при котором все пакеты загружаются прежде, чем система перезагрузится для запуска установщика Anaconda.

При обновлении с помощью yum вы не получите никакой помощи от программы установки Anaconda, но при удачном стечении обстоятельств сможете обновить систему удалённо, через ssh, с ограниченным временем простоя системы. (Хотя, по-прежнему, потребуется перезагрузка системы, что бы загрузилось новое ядро, а также системные библиотеки/сервисы). Перезагрузка после такого обновления всегда очень волнующая.

Live обновление с помощью yum обычно работает на стандартных установках Fedora при применении нижеследующих советов.

Ваше участие

Если при обновлении с помощью Yum обнаруживается какая-либо проблема с зависимостями пакетов, пожалуйста, отправьте отчет об этом в http://bugzilla.redhat.com. Но, пожалуйста, прочитайте сначала данную страницу и все страницы, на которые мы ссылаемся, а также просмотрите архив списка рассылки прежде, чем заполнять отчет об ошибке. И конечно помогите, пожалуйста, сохранить данную страницу в актуальном состоянии.

Если вы хотите помочь сделать процесс live обновления более простым, присоединяйтесь к группе по интересам "Live Upgrade" ("Live обновление").

Инструкции по обновлению с помощью yum

0. Выполните резервное копирование

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

1. Прочитайте о возможных проблемах

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

Общие советы по обновлению Fedora можно найти на странице Upgrading. Необходимо прочитать Руководство по установке и Замечания к выпуску для версии, до которой вы обновляетесь, - здесь может содержаться важная информация о возможных проблемах при обновлении. Наконец, просмотрите список Распространенные ошибки F39.

2. Приготовления

Просмотрите и удалите все файлы .rpmsave и .rpmnew прежде, чем приступить к обновлению. (И, если selinux активирован, проверьте его настройки).

Idea.png
Отыщите неиспользуемые конфигурационные файлы
Объедините и решите изменения с помощью следующего скрипта: for a in $(find /etc /var -name '*.rpm?*'); do diff -u $a ${a%.rpm?*}; done.

Теперь необходимо удалить пакеты, которые вы не используете, - особенно, если это нестандартные пакеты.

Idea.png
Отыщите и просмотрите "неиспользуемые" пакеты
Вы можете найти пакеты, которые не нужны другим пакетам, с помощью инструмента package-cleanup из пакета yum-utils: yum install yum-utils; package-cleanup --leaves. Вы можете решить, что эти пакеты являются кандидатами на удаление, но необходимо проверить, что эти пакеты не используются лично вами и что они не используются приложениями установленными без помощи rpm. Если это так, то удалите их с помощью yum remove имя-пакета-и-его-версия.
Idea.png
Отыщите и просмотрите "потерянные" пакеты
Вы можете найти устаревшие пакеты (например, пакеты, которые больше не располагаются в репозитариях) с помощью: package-cleanup --orphans. Эта команда отобразит пакеты, которые были частично удалены, но для которых выполнение "%postun" скрипта окончилось неудачей.

Убедитесь, что пакет yum-fastestmirror был установлен, для того, чтобы использовать самое быстрое зеркало для скачки пакетов.

yum install yum-fastestmirror

Затем удалите все следы текущей версии, оставшиеся в кэше /var/cache/yum.

yum clean all

3. Переключение репозитариев

Обновите пакеты, которые должен использовать yum.

rpm -Uhv ftp://download.fedora.redhat.com/pub/fedora/linux/releases/<ReleaseNumber>/Fedora/<Arch>/os/Packages/fedora-release-*.noarch.rpm

(Архитектура не имеет значения для пакета noarch .)

Note: Некоторые пользователи говорят, что при попытке скачать эти файлы с помощью rpm получают ответ 550 и сообщение "transfer failed". Если вы столкнулись с этим, вы можете загрузить rpms файл и установить его вручную, например, следующим образом:

wget ftp://download.fedora.redhat.com/pub/fedora/linux/releases/<ReleaseNumber>/Fedora/<Arch>/os/Packages/fedora-release-*.noarch.rpm
rpm -Uvh fedora-release-*.noarch.rpm

Убедитесь, что новые repo файлы не расположены в файлах .rpmnew, например, с помощью

mv /etc/yum.repos.d/fedora-updates.repo.rpmnew /etc/yum.repos.d/fedora-updates.repo
mv /etc/yum.repos.d/fedora.repo.rpmnew /etc/yum.repos.d/fedora.repo

Если вы используете репозитарии третьесторонних производителей, может потребоваться их настройка для новой версии Fedora. Если же вы обновляетесь с одного выпуска Fedora к другому, в большинстве случаев ничего делать не придётся. If you switch to Rawhide from a standard Fedora release (or vice versa) then you most of the time need to install the Rawhide release RPMs from the 3rd party repository as well (or the standard ones, if switching back).

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

4. Выполните обновление

Если используется selinux, удостоверьтесь, что он в режиме permissive, а не в disabled или enforcing.

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

ctrl + alt + F2

Войдите в систему и перейдите в runlevel 3

telinit 3
Warning.png
Если live обновление началось, не завершайте обновление вручную и не перезагружайте систему, не убивайте процесс и никаким другим образом не останавливайте его до его завершения. Выполнение этого приведёт систему в смешанное состояние. Частично система будет состоять из пакетов предыдущего выпуска, частично из пакетов нового. В таком состоянии система не будет надежно работать, как этого бы хотелось. Если такое произойдёт, возможно нужно будет переустановить систему с помощью Anaconda.
Idea.png
Сначала обновите важные пакеты
Начинать обновление следует с обновления инструментов обновления, для этого выполните yum update rpm\* yum\*. Или можно начать обновление с обновления glibc. В обоих случаях по зависимостям будет произведено почти полное обновление. И выполнение полного обновления может быть более безопасным. YMMV. (Напрмер, не выполнейте обновление rpm и yum отдельно, обновляемая система использует другую версию python например не 2.4 а 2.5.)

Обновите все пакеты с помощью

yum upgrade

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

Помните, что все (новые) важнейшие пакеты из новой версии ОС устанавливаются с помощью

yum groupupdate Base

Возможно понадобится обновить другие группы пакетов, просмотрите их с помощью

yum grouplist

Например:

yum groupupdate "GNOME Desktop Environment" \
"Development Tools" "Server Configuration Tools" \
"Hardware Support" "Sound and Video" \
"Graphical Internet" "Fonts" \
"Games and Entertainment" "Printing Software" \
"Administration Tools" "Office/Productivity" "System Tools"

4. Выполните обновление

Если у вас подключены сторонние репозитории, возможно вам понадобится y настроить их для новой версии Fedora. Если вы обновляетесь с одного релиза до другого, то обычно ничего делать не приходится. Если вы обновляетесь с текущего релиза до Rawhide (или наоборот), то большую часть времени вам придется устанавливать пакеты Rawhide из сторононнего репозитория (или, наоборот, стандартные пакеты в обратном случае).

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

Хорошей идеей считается обновлнеие вне графической оболочки. Выйдите из графического режима и выполняйте следующие шаги.

Перейдите в текстовую консоль

ctrl + alt + F2

(или)

зайдите как root (суперпользователь) и перейдите в runlevel 3

init 3

Обновите yum до последней версии, доступной для вашей версии Fedora

yum update yum

Установите новый gpg-ключ Fedora для версии, до которой собираетесь обновиться

Вы можете найти ключи и проверить их на странице

https://fedoraproject.org/keys

или читайте инструкции по обновлению отдельных версий ниже.

Очистите кеш

Затем удалите все следы той версии, с которой вы обновляетесь, из кеша yum /var/cache/yum.

yum clean all

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

Warning.png
Если live-обновление запущено, не останавливайте его путем перезагрузки или любыми другими методами пока оно не закончится. Прерывание обновления может стать причиной поврежденного состояния системы, в которой часть пакетов старые, а часть новые. В этом состоянии система будет нестабильной и не будет работать так, как положено. Вы можете попробовать запустить yum distro-sync и package-cleanup --problems для устранения проблем.
yum --releasever=<release_number_you_want_to_sync_to> distro-sync
Warning.png
Если у вас возникли проблемы с зависимостями, то вам придется решать их вручную самостоятельно. Если вы считаете, что не сможете этого сделать, используйте preupgrade! В большинстве случаев достаточно удалить несколько проблемных пакетов. Будьте уверены, что не удаляете половину из вашей установки.

Внимание: While it is recommended to upgrade to intermediate releases if upgrading from an older release (for example upgrading from Fedora 12 to 13, then 13 to 14), depending on what version you are upgrading from, this step may fail with an error about GPG keys being in the wrong format. To overcome this, you can add the "--nogpgcheck" switch to the above yum distro-sync command.

5. Убедитесь, что Fedora обновлена

Distro-sync will usually take care of upgrades for the third party repositories you have enabled as well. Confirm with

 yum repolist 

after the upgrade process is over. yum might complain about conflicts or requirements. That is probably because you have used non-standard repositories or installed non-standard packages manually. Try to guess which packages cause the problem (or at least is a part of the dependency chain) - uninstall them and try again. Remember to install the packages again if they are essential.

Убедитесь, что все основные (новые) пакеты из новой версии установлены с помощью команды

yum groupupdate Base

Вы так же можете обновить другие группы пакетов

yum grouplist

Например,

yum groupupdate "GNOME Desktop Environment" \
"Development Tools" "Server Configuration Tools" \
"Hardware Support" "Sound and Video" \
"Graphical Internet" "Fonts" \
"Games and Entertainment" "Printing Software" \
"Administration Tools" "Office/Productivity" "System Tools"

5. Подготовка к перезагрузке

Прежде, чем перезагрузить систему, необходимо установить загрузчик grub с помощью команды

/sbin/grub-install BOOTDEVICE

- здесь BOOTDEVICE обычно является /dev/sda (Если вы получите сообщение об ошибке '/dev/sda does not have any corresponding BIOS drive' в результате выполнения этой команды, попробуйте выполнить /sbin/grub-install --recheck /dev/sda.)

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

cd /etc/rc.d/init.d; for f in *; do /sbin/chkconfig $f resetpriorities; done

Снова выполните package-cleanup --orphans, чтобы отыскать пакеты, которые не были обновлены.

Специфичные инструкции для отдельных версий

Обновление с pre-release

Если вы обновляетесь до финальной версии с alpha, beta, preview или Rawhide выпуска, пожалуйста, просмотрите страницу Upgrading from pre-release to final.

Версия для разработчиков

yum update yum
yum --releasever=rawhide distro-sync --skip-broken --nogpgcheck

Fedora 16 -> Fedora 17

Warning.png
Эти инструкции касаются версии, которая еще не вышла. Шаги могут меняться перед релизом.

The Usr Move Feature changes where some important programs are installed on the filesystem. Once the packages that implement this are built (not yet as of November 30, 2011) we will have to move some directories on the filesystem and setup compatibility symlinks before we can upgrade. Although the details are not yet finalized, the general steps will be:

  1. Updating to dracut version $X or later (pushed to all non-EOL Fedora releases).
  2. Rebuild the initramfs with dracut command $X
  3. Reboot the computer, giving $X as a kernel command line option
  4. The computer will startup and run a script in the initramfs that migrates the filesystem. Once booted, the /bin, /sbin, /lib, and /lib64 directories should be symlinks to their respective /usr/ counterparts and the files that were in them should have been merged together.
  5. At this point you may reboot the computer back into a normal boot (or simply change to the multiuser or graphical target) and proceed with your yum upgrade.

Running the script via the initramfs allows it to bypass some tricky logic when moving the dynamic linker (ld-linux-2.so). If you want to perform this completely manually, you can read the script that dracut would install in the initramfs at $X and then modify the steps to move the files around without leaving yourself without a ld-linux-2.so at the expected path.

Fedora 15 -> Fedora 16

Во-первых, установить новый gpg-ключ Fedora 16. You may wish to verify this package against https://fedoraproject.org/keys and the fedora ssl certificate.

rpm --import https://fedoraproject.org/static/A82BA4B7.txt

После этого запустите chkconfig --list and note the enabled services; you will need to re-enable these with systemctl enable xxxxx.service after you reboot, as the Package-x-generic-16.pngsysvinit settings aren't propagated into Package-x-generic-16.pngsystemd. See release notes for more details.

Обновите все пакеты с помощью

yum update yum
yum clean all
yum --releasever=16 --disableplugin=presto distro-sync
Warning.png
Bootloader change
После обновления у вас будут установлены пакеты Package-x-generic-16.pnggrub2 и Package-x-generic-16.pnggrub-efi и удален пакет Package-x-generic-16.pnggrub. Однако, grub будет все еще установлен в MBR и загрузка будет работать. Вы можете следовать инструкциям для перехода на grub2, если хотите. При установке пакет Package-x-generic-16.pngfirstaidkit-plugin-grub может препятствовать обновлению; просто удалите его в таком случае.

If your system uses a BIOS, or you installed Fedora via BIOS emulation mode on an EFI system (not native EFI mode), you can switch to Fedora 16's supported grub2 bootloader with the following instructions. If your system was installed by native EFI boot, do not switch to grub2, as its EFI support is still unreliable. Fedora 16's supported bootloader for native EFI installations is still grub-legacy, so you should simply continue to use the system without making any special changes to the bootloader configuration.

Для перехода на grub2 выполните команду su -c '/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg', дальше действуйте согласно инструкциям по переустановке загрузчика.

Known you upgrade -specific issues (for common problems, see references above):

  • Bug 743022 - F15->F16 yum update fails with IMSM (BIOS) raid


Fedora 14 -> Fedora 15

First install the new fedora 15 gpg key. You may wish to verify this package against https://fedoraproject.org/keys and the fedora ssl certificate.

rpm --import https://fedoraproject.org/static/069C8460.txt

Upgrade all packages with

yum update yum
yum clean all
yum --releasever=15 --disableplugin=presto distro-sync
  • Do not run this from within an X terminal. Testing shows that X might hang while updating bitmap font packages.
  • There exist .drpms, but they don't match, due to a format change, so better disable the presto plugin by adding the option "--disableplugin=presto" (without quotes) when running yum.
  • The F15 screen client is not capable of attaching to F14 screen sessions. Thus, if you want to run the upgrade under screen, you should either upgrade screen itself in a separate operation or make a separate copy of screen to use throughout the process.



Fedora 13 -> Fedora 14

Для начала установите новый gpg-ключ Fedora 14. You may wish to verify this package against https://fedoraproject.org/keys and the fedora ssl certificate.

rpm --import https://fedoraproject.org/static/97A1071F.txt

Обновите все пакеты с помощью

yum update yum
yum --releasever=14 distro-sync --skip-broken
  • Если вы используете VirtualBox из репозитория Oracle, вам необходимо удалить пакет VirtualBox-3.1 перед обновлением. После того, как оно будет закончено, установите VirtualBox-3.2.

Обновление с версий, которые больше не поддерживаются

Note.png
Обновление через yum со старых версий
Информация об обновление через yum со старых версий перенесена в архив. Вы можете найти ее здесь: Обновление через yum с неподдерживаемых версий Fedora