Admin/UpdateLinux
Обновление Linux-систем
Описание того, как перевести систему на следующую версию.
По возможности используем зеркало на http://mirror.yandex.ru.
Fedora
Устанавливаем последние обновления для системы:
yum -y update
Если жалко, можно попробовать только
yum install rpm yum
Чистим кэш yum:
yum clean all
Устанавливаем пакет fedora-release:
rpm -Uvh http://mirror.yandex.ru/fedora/linux/releases/16/Fedora/x86_64/os/Packages/fedora-release-16-1.noarch.rpm
и выполняем
yum update
При обновлении в контейнере OpenVZ можно получить что-то подобное:
error: unpacking of archive failed on file /usr/libexec/pt_chown: cpio: cap_set_file failed - Operation not permitted
Приходится вручную скачивать пакет и ставить его командой
rpm --justdb
А потом копировать вручную файлы из него в систему. См. также http://bugs.etersoft.ru/show_bug.cgi?id=7347#c5
Обновление 14->15
rpm --import https://fedoraproject.org/static/069C8460.txt yum update yum yum clean all yum --releasever=15 --disableplugin=presto distro-sync
Установка пакетов для разработки:
yum groupinstall 'Development Tools'
CentOS
Для обновления CentOS 5.x до следующего релиза, достаточно выполнить команду "yum update", предварительно проверить какие пакеты подлежат обновлению можно через "yum list updates", а убедится, что обновление прошло успешно - "rpm -q centos-release".
Mandriva
Удалить старые репозитории:
urpmi.removemedia -av
Установить новые:
urpmi.addmedia --distrib
Например,
urpmi.addmedia --distrib http://mirror.yandex.ru/mandriva/devel/2010.2/i586/
Обновиться:
urpmi --auto-update --replacefiles
SUSE
Сначала смотрим все репозитории командой
zypper sl
Потом надо удалить все репозитории командой
zypper rr <номер_репозитория>
Добавляем репозиторий от 11.1 ветки
zypper ar http://mirror.yandex.ru/opensuse/distribution/11.1/repo/oss 11.1oss
Теперь у нас есть репозиторий с именем 11.1
Дальше обновляем репозитории командой
zypper ref
Сначала следует обновить rpm
zypper in rpm
также необходимо обновить zypper
zypper in zypper
Теперь запускаем команду
zypper dist-upgrade
и система обновляется.
Если возникают проблемы с /var/lib/zypp/cache/.../DATA/descr/packages, необходимо создать этот файл.
То же с epm:
epm sl epm rr N epm ar URL name epm update epmi rpm zypper epm upgrade
PCLinux
В /etc/apt/sources.list изменить номер релиза, проверить на зеркале наличие соответствующих папок updates, main и т.д.
# apt-get update # apt-get upgrade
Arch Linux
Зеркала настраиваются в /etc/pacman
Для обновления системы запускаем pacman -Syu
Ubuntu
Изменить репозитории в /etc/apt/sources.list и
epm update epm upgrade
После копирования (с созданием жёстких ссылок) и последующего обновления слетают права на /bin/su и /bin(u)mount. Быстрая починка:
# chmod 04755 su umount mount
Дополнительно
Для создания chroot использовал пакет debootstrap (предварительно собрав его).
Команда для создания chroot:
# debootstrap --variant=buildd --arch i386|amd64 oneiric /path/to/chroot http://mirror.url.com/ubuntu/
Мануал взят с https://help.ubuntu.com/community/BasicChroot
Проблема с "start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused" при установке новых пакетов в контейнер OpenVZ леичт так:
# dpkg-divert --local --rename --add /sbin/initctl Adding 'local diversion of /sbin/initctl to /sbin/initctl.distrib' # ln -s /bin/true /sbin/initctl
Slackware
# epm repolist
Смотрим, какой репозиторий указан и в каком файле. Исправляем путь до новой версии.
# epm update # epm upgrade
FreeBSD
Обновление через cvsup:
Указываем в /etc/supfile (можно скопировать standard-supfile из /usr/share/examples/cvsup/)
- default tag=RELENG_7_2
7_2 - релиз, до которого планируем обновляться.
Качаем исходники для этого релиза:
cvsup -g -L 2 /etc/supfile
Обновляемся:
cd /usr/src make buildworld make buildkernel KERNCONF=YOUR_KERNEL_HERE (YOUR_KERNEL_HERE - название ядра которое лежит в папке /usr/src/sys/i386/conf. Но заметьте, вы путь не указываете, а указываете только имя файла. Советую переименовать файл, чтобы скомпилилось новое ядро, а не то что было до обновления системы) make installkernel KERNCONF=YOUR_KERNEL_HERE reboot mergemaster -p make installworld mergemaster reboot
Монтирование FTP разделов
Для облегчения жизни при установке новой системы (дабы не скачивать iso'шник) можно смонтировать ftp-сервер (например ftp.mirror.yandex.ru) на машине и подсунуть VirtualBox'у iso'шник лежащий на сервере.
Все, что необходимо - это маленькая программка CurlFtpFS.
Для установки:
$ sudo apt-get install curlftpfs
Для монтирования FTP-раздела, например ftp://mirror.yandex.ru, в каталог /mnt/ftp используется команда:
$ sudo curlftpfs ftp://mirror.yandex.ru /mnt/ftp -o allow_other
(параметр -o allow_other позволяет читать содержимое смонтированного каталога всем пользователям)