From Fedora Project Wiki

Обновление Fedora с помощью yum

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

Обновление версий без использования anaconda - такие как метод с использованием yum, описанный ниже - является не поддерживаемым и не рекомендуется!
Рекомендуемым методом установки является использование загрузочного носителяс установщиком Anaconda, как описано в Руководстве по установке или с использованием PreUpgrade. PreUpgrade является слегка отличающимся методом обновления, при котором все пакеты скачиваются перед перезагрузкой системы в редим установщика Anaconda. Несмотря на то, что обновление с помощью yum работает, оно не до конца протестировано в рамках процесса выпуска релизова командой Fedora QA и не задокументированно в Руководстве по установке]. Если вы не готовы к самостоятельному решению возможных проблем, вам лучше использовать рекомедуемые методы установки.

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

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

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

Ваше участие

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

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

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

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

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

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

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

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

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

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

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

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

Отыщите и просмотрите "неиспользуемые" пакеты
Вы можете найти пакеты, которые не нужны другим пакетам, с помощью инструмента package-cleanup из пакета yum-utils: yum install yum-utils; package-cleanup --leaves. Вы можете решить, что эти пакеты являются кандидатами на удаление, но необходимо проверить, что эти пакеты не используются лично вами и что они не используются приложениями установленными без помощи rpm. Если это так, то удалите их с помощью yum remove имя-пакета-и-его-версия.
Отыщите и просмотрите "потерянные" пакеты
Вы можете найти устаревшие пакеты (например, пакеты, которые больше не располагаются в репозитариях) с помощью: 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. Выполните обновление

Если у вас подключены сторонние репозитории, возможно вам понадобится 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

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

Если live-обновление запущено, не останавливайте его путем перезагрузки или любыми другими методами пока оно не закончится. Прерывание обновления может стать причиной поврежденного состояния системы, в которой часть пакетов старые, а часть новые. В этом состоянии система будет нестабильной и не будет работать так, как положено. Вы можете попробовать запустить yum distro-sync и package-cleanup --problems для устранения проблем.
yum --releasever=<release_number_you_want_to_sync_to> distro-sync
Если у вас возникли проблемы с зависимостями, то вам придется решать их вручную самостоятельно. Если вы считаете, что не сможете этого сделать, используйте 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 17 -> Fedora 18

Внимание: Этот метод не работает на Macbook Pro, проверено на Macbook Pro конца 2011 года. Подробнее

  1. Установите новый gpg ключ: su -c 'rpm --import https://fedoraproject.org/static/DE7F38BD.txt'
  2. Переключите SELinux в режим Permissive: su -c 'setenforce Permissive'
  3. Обновите все пакеты:
    1. su -c 'yum update yum'
    2. su -c 'yum clean all'
    3. su -c 'yum --releasever=18 --disableplugin=presto distro-sync'
  4. Перегенерируйте базу данных пакетов rpm: su -c 'rpm --rebuilddb', иначе rpm -qa не будет работать из-за обновления пакета rpm.

Вы можете заметить ошибки в выводе yum'а, когда некоторые пакеты попытаются создать пользователей и/или группы, если не включили режим Permissive на время обновления. После обновления у вас могут возниктуть проблемы с этими пакетами, такие как невозможность входа в систему через GDM (будет виден только вращающийся курсор) и/или какие-либо действия, требующие администраторских прав доступа. Это возникает в результате bug #844167. Если эти проблемы все-таки возникли, нужно переустановить испорченные пакеты с помощью команды su -c 'yum reinstall (packagenames)' и перезагрузить систему. Возможно проблемы возникнут с пакетами libvirt-daemon and polkit: su -c 'yum reinstall libvirt-daemon polkit'

Попробуйте скрипт fedora-upgrade, он проделает все эти шаги автоматически

Fedora 16 -> Fedora 17

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

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 sysvinit settings aren't propagated into systemd. See release notes for more details.

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

yum update yum
yum clean all
yum --releasever=16 --disableplugin=presto distro-sync
Bootloader change
После обновления у вас будут установлены пакеты grub2 и grub-efi и удален пакет grub. Однако, grub будет все еще установлен в MBR и загрузка будет работать. Вы можете следовать инструкциям для перехода на grub2, если хотите. При установке пакет firstaidkit-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

Для начала установите новый GPG ключ для Fedora 15. Для проверки этого пакета на достоверность https://fedoraproject.org/keys и SSL сертификату Fedora выполните следующее:

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

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

yum update yum
yum clean all
yum --releasever=15 --disableplugin=presto distro-sync
  • Не запускайте эти команды из под X терминала. Тесты показывают, что X сервер может зависать в процессе обновления пакетов со шрифтами.
  • Существуют .drpms, но они не совпадают с новыми ввиду изменения формата, поэтому лучше отключить плагин "presto" путем добавления ключа "--disableplugin=presto" (без кавычек) при запуске пакетного менеджера yum.
  • Screen клиент F15 не позволяет подключаться к F14 screen сессиям. Поэтому, если Вы хотите запустить обновление через screen, Вам необходимо либо обновить screen сначала, либо сделать его отдельную копию для использования в процессе обновления.


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.

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

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