1. Резервное копирование данных
1.1. На пороге любых революционных изменений всегда рекомендуется производить создание архивных
копий
всей системы или отдельных значимых директорий, таких как /etc, /home и т.п.
1.2. Для сохранения отдельно значимых директорий устанавливаем утилиту синхронизации данных rsync:
root@debian:~# apt-get install rsync
1.3. Монтируем внешний накопитель данных с точкой монтирования /mnt и создаем в ней директорию /mnt/wheezy-backup
1.4. Запускаем процесс синхронизации всех значимых директорий
root@debian:~# rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*", "/run/*", "/media/*", "/mnt/*", /lost+found } /* /mnt/wheezy-backup
1.4.1. Опции -aAXv обеспечивают архивный режим с сохранением всех символических ссылок, устройств, прав доступа, владельца (пользователя) и группы, время модификации и т.д.
1.4.2. Опция --exclude исключает из данного процесса директории, содержимое которых создается в процессе работы системы или приводящие к нежелательному бесконечному рекурсивному копированию данных из директории с которой они синхронизируются, такой как /mnt или /media .
2. Настройка удаленного зеркала репозитария
2.1. Редактируем источники репозитариев Debian APТ, открываем файл /etc/apt/source.list
#
# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official i386 NETINST Binary-1 20141018-11:52]/ wheezy main
# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official i386 NETINST Binary-1 20141018-11:52]/ wheezy main
deb http://ftp.ru.debian.org/debian/ wheezy main
deb-src http://ftp.ru.debian.org/debian/ wheezy main
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
# wheezy-updates, previously known as 'volatile'
deb http://ftp.ru.debian.org/debian/ wheezy-updates main
deb http://ftp.ru.debian.org/debian/ wheezy-backports main
deb-src http://ftp.ru.debian.org/debian/ wheezy-updates main
2.2. В нем комментируем (рекомендуется) или удаляем строки (приветствуется), относящиеся к wheezy/updates и wheezy-backports, а для основных источников репозитариев (бинарных пакетов и пакетов с исходными кодами) меняем кодовое название ветви дистрибутива Debian с wheezy на jessie.
Дополнительно, в них прописываем секции non-free и contrib, содержащие пакеты, которые могут понадобится, например для прошивок сетевых карт или в будущем иныму аппаратному или программному обеспечению.
#
# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official i386 NETINST Binary-1 20141018-11:52]/ wheezy main
# deb cdrom:[Debian GNU/Linux 7.7.0 _Wheezy_ - Official i386 NETINST Binary-1 20141018-11:52]/ wheezy main
deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ jessie main contrib non-free
# Comments line for Debian updating...
# deb http://security.debian.org/ wheezy/updates main
# deb-src http://security.debian.org/ wheezy/updates main
# Yet no need in these lines
# wheezy-updates, previously known as 'volatile'
# deb http://ftp.ru.debian.org/debian/ wheezy-updates main
# deb http://ftp.ru.debian.org/debian/ wheezy-backports main
# deb-src http://ftp.ru.debian.org/debian/ wheezy-updates main
2.3 Ленивым пользователям вместо п.п. 2.1, 2.2 и 2.3 можно воспользоваться командой netselect-apt (рекомендуется запускать в директории суперпользователя root).
root@debian:~# netselect-apt jessie
2.3.1. Перед этим, необходимо установить пакет и netselect-apt (неявно netselect).
root@debian:~# apt-get install netselect-apt
2.3.1.2. При этом, netselect-apt выберет самый оптимальный по времени доступа хост удаленного зеркала репозитария debian в сети интернет, поэтому не факт, что это будет используемый нами хост ftp.ru.debian.org.
2.3.2. Далее необходимо сделать резервную копию файла /etc/apt/source.list, если что-то пойдет не так.
root@debian:~# mv /etc/apt/source.list /etc/apt/source.list~
2.3.3. В конце остается скопировать файл source.list из директории суперпользователя root в директорию /etc/apt
root@debian:~# cp source.list /etc/apt
2.4 После чего, можно перейти к процедуре обновления в п.4
3. Использование локального зеркала репозитария.
3.1. Создадим локальный репозитарий (архив) в директории /home, являющейся обычно точкой монтирования локального (или жесткого) диска, который к тому же имеет так же обычно наибольший размер. Ниже приводится текст скрипта debmirror.sh интерпретатора bash c переменными, содержащие аргументы и ключи утилиты создания зеркала архива debmirror (как не странно это скрипт).
#!/bin/bash
LANG=C
DEB_HOST="ftp.ru.debian.org"
DEB_DIST=debian
DEB_VERSION="jessie"
DEB_ARCH="i386"
DEB_SECT="main,non-free,contrib,main/debian-installer"
DEB_ROOT="debian"
DEB_MIRROR_PATH="/home/debmirror"
DEB_OPT="--18n --method=http --verbose --source --diff=none --getcontents"
# the debmirror command
debmirror -a $DEB_ARCH -d $DEB_VERSION -s $DEB_SECT --root=$DEB_ROOT -h $DEB_HOST $DEB_OPT $DEB_MIRROR_PATH/$DEB_DIST
#eof
3.1.1. Переменная DEB_HOST
Содержит доменное имя хоста во всемирной сети интернет. В данном примере ftp.ru.debian.org
3.1.2. Переменная DEB_DIST
Кодовое название дистрибутива: debian
3.1.3. Переменная DEB_VERSION
Кодовое название ветви (версии) дистрибутива: jessie.
3.1.4. Переменная DEB_ARCH
Архитектура процессора: i386
3.1.5. Переменная DEB_SECT
Содержит название секций репозитария: По-умолчанию "main,non-free,contrib,main/debian-installer"
3.1.6. Переменная DEB_ROOT
Корневой каталог содержащий репозитарий пакетов Debian на стороне удаленного хоста во всемирной сети интернет.
3.1.7. Переменная DEB_MIRROR_PATH
Абсолютный путь к локальному архиву репозитария (зеркала) в директории /home
3.1.8. Переменная DEB_OPT
Дополнительные опции передаваемые debmirror такие как метод (протокол) для получения пакета, позволяющие сэкономить место и время при отказе от diff файлов и т.д.
3.2. Устанавливаем пакет с debmirror
root@debian:~# apt-get install debmirror
3.3. Настраиваем работу PGP для пользователя root
root@debian:~# mkdir .gnupg
root@debian:~# cp /usr/shae/gnupg/options.skel .gnupg/gpg.conf
3.4. Импортируем публичный ключ зеркала (архива) репозитария Debian
root@debian:~# gpg --keyserver pgpkeys.mit.edu --recv-keys 8B48AD6246925553
root@debian:~# gpg -a --export 8B48AD6246925553 | apt-key add -
3.3.1. Не забываем скопировать содержимое pubring.gpg в trustedkeys.gpg. Иначе, можно столкнуться с NO_PUBLIC/GPG error.
root@debian:~# cp pubring.gpg trustedkeys.gpg
Или локально, предварительно установить debian-archive-keyring
root@debian:~# apt-get install debian-archive-keyring
и импортировать связку доверительных ключей, требуемых debmirror
gpg --keyring /usr/share/keyrings/debian-archive-keyring.gpg --export \
| gpg --no-default-keyring --keyring trustedkeys.gpg --import
3.4. Создаем скрипт debmirror.sh, текст которого приведен выше, в директории /home/debmirror
3.5. В ней запускаем только что созданный скрипт
root@debian:/home/debmirror# ./debmirror.sh
3.6. Вносим необходимые изменения в файле /etc/apt/source.list для работы с локальной версией репозитария.
deb file:/home/debmirror/debian/ jessie main contrib non-free
deb-src file:/home/debmirror/debian/ jessie main
3.7. Переходим к п.4
4. Процедура обновления системы
4.1. Последовательно выполняем команды. Рекомендуется их производить из терминала /dev/tty1, ..., /dev/tty6 с остановом менеджеров графического окружения рабочего стола GDM или KDM.
root@debian:~# invoke-rc.d gdm3 stop
4.1.2. Используйте invoke-rc.d (рекомендуется) вместо непосредственного вызова скрипта /etc/init.d/gdm3 c передачей ему команды stop
4.2. Производите обновление доступных пакетов (кэш APT)
root@debian:~# apt-get update
4.3. После успешного завершения можно запустить процедуру обновления
root@debian:~# apt-get dist-upgrade
4.4. Обладателям сетевых адаптеров Realtek рекомендуется обновить пакет firmware-realtek
root@debian:~# apt-get install firmware-realtek
5. Перезапустите машину
root@debian:~# reboot
Библиография