Performing the upgrade to Debian 9 Stretch
In this example we’ll be upgrading from Debian 8.8.
:~# cat /etc/debian_version 8.8
Before proceeding with the upgrade, please read through the list of .
- It is recommended that you have your Debian 8 Jessie installation completely up to date before starting, to do this run “apt-get update” followed by “apt-get upgrade” and install available updates.
:~# apt-get update :~# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
In my case all updates have been applied already, so it’s fine to proceed.
- Edit the /etc/apt/sources.list file, my file is shown below. As you can see all of the lines are currently specifying “jessie”. Note that your mirror sources will likely be different which is fine.
deb http://debian.uberglobalmirror.com/debian/ jessie main deb-src http://debian.uberglobalmirror.com/debian/ jessie main deb http://security.debian.org/ jessie/updates main contrib deb-src http://security.debian.org/ jessie/updates main contrib # jessie-updates, previously known as 'volatile' deb http://debian.uberglobalmirror.com/debian/ jessie-updates main contrib deb-src http://debian.uberglobalmirror.com/debian/ jessie-updates main contrib
Change the instances of “jessie” to “stretch”, you can either do this manually, or automatically with the below sed command.
sed -i 's/jessie/stretch/g' /etc/apt/sources.list
my new sources.list file is shown below.
deb http://debian.uberglobalmirror.com/debian/ stretch main deb-src http://debian.uberglobalmirror.com/debian/ stretch main deb http://security.debian.org/ stretch/updates main contrib deb-src http://security.debian.org/ stretch/updates main contrib # stretch-updates, previously known as 'volatile' deb http://debian.uberglobalmirror.com/debian/ stretch-updates main contrib deb-src http://debian.uberglobalmirror.com/debian/ stretch-updates main contrib
You can either use “stretch” or “stable”, as Debian 9 Stretch is now the current stable version as of writing. However note that if you use stable instead of the specific release name, in future when Debian 10 is released that will be the stable version so you may upgrade to that unintentionally.
- The recommended way to upgrade Debian is with the ‘apt-get’ command. First update the list of available packages with the below command, as we’ve just updated the sources.list file.
apt-get update
- Now that the list of available packages has been updated from the mirror, run the below command to perform a minimal upgrade.
apt-get upgrade
This is known as a minimal system upgrade as it only upgrades packages that can be upgraded without needing any other packages to be removed or installed, so it’s a safe place to start. This upgraded 932 packages requiring 412MB on my system.
- Now you’re ready to do the complete system upgrade, this will upgrade to the latest available version for all packages installed.
apt-get dist-upgrade
Ensure that you have enough free disk space to complete the operation, in my case it notes that afterwards 1,048MB of additional disk space will be used with 639 package upgrades and 479 newly installed packages.
Note that this will remove conflicting obsoleted packages, potentially packages that you may want to keep, so check what it’s going to do by reading the output before proceeding.
- Once the upgrade has completed you may have packages that can be removed and are no longer required, you’ll see these when trying to use apt-get upgrade. We can clean these out by running “apt-get autoremove”.
apt-get autoremove
This cleaned 496MB of packages from my system that were identified as no longer being required after the upgrade.
- All that’s left to do is perform a reboot of the system, this is required as the kernel version has been updated. This can be done by simply entering “reboot” in the terminal.
Before upgrade: :~# uname -a Linux debian8 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2 (2017-04-30) x86_64 GNU/Linux After upgrade and system reboot: :~# uname -a Linux debian8 4.9.0.3-amd64 #1 SMP Debian 4.9.30-2 (2017-06-12) x86_64 GNU/Linux
As you can see the newer kernel version 4.9 is now in place after rebooting.
You can also check the /etc/debian_version file to confirm that you’re on version 9.
:~# cat /etc/debian_version 9.0
Now I just need to change my “debian8” hostname!
Настройка xfce4
Чтобы жить стало немного веселее можно сделать пару манипуляций с панелью. Заходим в
и добавляем то, что нужно. Можно поменять часы на часы с датой. Добавить регулятор громкости.
Чтобы добавить уровень заряда батареи для ноутбука и апплет раскладки клавиатуры нужно скачать апплет из репозитария:
apt-get install xfce4-battery-plugin
apt-get install xfce4-xkb-plugin
Чтобы увеличить шрифт в эмуляторе терминала xfce4 нужно нажать Ctrl и удерживая его сделать клик правой кнопкой
мыши на терминале — появится интуитивно понятное меню.
Перезапустить
X-server
(предварительно уйдя в консоль Ctrl + Atl + F1) можно командой
/etc/init.d/gdm restart
или
/etc/init.d/gdm3 restart
или
/etc/init.d/kdm restart
Для выключения нужно писать не restart а stop, для запуска start
Oбновление Debian GNU/Linux 8 «Jessie» до Debian 9 «Stretch» методом In-Place Upgrade
Перед началом процедуры обновления методом In-Place Upgrade с Debian GNU/Linux 8 (Jessie) до Debian 9 (Stretch) крайне желательно создать резервную копию обновляемой системы для возможности возврата системы в исходное состояние на тот случай, если после обновления возникнут проблемы.
Обновляем Debian 8
Проверим текущую версию Debian:
# cat /etc/debian_version
# uname -a
# lsb_release -a
Убедимся в том, что в конфигурации пакетного менеджера apt подключены стандартные репозитории Debian Jessie: Как подключить стандартные репозитории Debian 8 Jessie
Выполним обновление всех доступных к обновлению пакетов из репозиториев Jessie:
# apt-get update # apt-get upgrade
После обновления пакетов перезагрузим систему и приступим к процессу обновления до уровня Debian 9 (Stretch).
Подключаем репозитории Debian 9 и обновляем пакеты
В файле отключим стандартные репозитории Debian 8 (закомментируем строки) и подключим репозитории Debian 9: Как подключить стандартные репозитории Debian 9 Stretch
Обновим кеш менеджера пакетов и выполним первичное обновление пакетов:
# apt-get update # apt-get upgrade
Перед выполнением команды обновления пакетов, возможно, имеет смысл открыть дополнительную SSH-сессию к системе. Это позволит нам, не прерывая процесс обновления, сохранить свои конфигурационные файлы от ранее установленных пакетов, при обновлении которых возникли конфликты с конфигурационными файлами, поставляемыми в составе новых версий пакетов
Обновляем систему до Debian 9
После успешной первичной установки пакетов из репозиториев Debian 9 выполняем полное окончательное обновление системы, в ходе которого будет обновлено и ядро Linux, поставляемое с новой версией Debian:
# apt-get dist-upgrade
На запрос о необходимости перезапуска служб в процессе установки новых версий пакетов ответим утвердительно.
Для пакетов, у которых ранее были изменены стандартные конфигурационные файлы, будет предложено выбрать вариант их обновления. Можно использовать опцию установки новых конфигурационных файлов (опция Y), а можно оставить свои ранее настроенные конфигурационные файлы (опция N), если мы понимаем, что принципиальных отличий в директивах конфигурации нет. На этом этапе для дополнительного анализа ситуации нам и пригодится ранее запущенная дополнительная SSH-сессия.
После успешного окончания установки всей пакетой базы новой версии удаляем устаревшие файлы неиспользуемых пакетов:
# apt-get autoremove
Перезагружаем систему.
Проверяем версию загруженного ядра Linux:
# uname -a
Проверяем версию ОС:
# lsb_release -a
Проверено на следующих конфигурациях:
Версия исходной ОС | Версия целевой ОС |
---|---|
Debian GNU/Linux Jessie 8.11 | Debian GNU/Linux Stretch 9.9 |
Автор первичной редакции:Алексей Максимов
Время публикации: 07.08.2019 10:06
Автоматическое монтирование при загрузке
Чтобы не монтировать диски каждый раз вручную можно прописать этот процесс в файл
Сперва нужно узнать постоянный номер диска, который вы хотите примонтировать
ls -l /dev/disk/by-uuid
andrey@debian:~$ ls -l /dev/disk/by-uuid
итого 0
lrwxrwxrwx 1 root root 10 Апр 1 12:26 28F45727F456F712 -> ../../sda1
lrwxrwxrwx 1 root root 10 Апр 1 12:26 2ff64169-2a42-4134-bb7d-785d2cb7ac26 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Апр 1 12:26 3AE8F3DBE8F3937D -> ../../sda2
lrwxrwxrwx 1 root root 10 Апр 1 12:26 3E8904579F5AA793 -> ../../sda5
lrwxrwxrwx 1 root root 10 Апр 1 12:26 BB76478F1B670CB0 -> ../../sdb8
lrwxrwxrwx 1 root root 10 Апр 1 12:26 DEFB-25FE -> ../../sdb7
lrwxrwxrwx 1 root root 10 Апр 1 12:26 e7b2f181-26ae-4a22-9c9a-10a6dc22daee -> ../../sdb5
lrwxrwxrwx 1 root root 10 Апр 1 12:26 eafb05d0-15c7-41a5-9709-318bb2c618b7 -> ../../sdb6
3E8904579F5AA793 — вот номер диска sda5, который нужно монтировать.
Открываем /etc/fstab
nano /etc/fstab
И дописываем внизу строчки
Структура
Программы
Документация
Конфигурационные файлы
Файл | Описание |
---|---|
/etc/aliases |
База данных почтовых псевдонимов.
Формат файла: Системой используется не этот файл а файл После обновления |
/etc/hosts.conf |
Содержит параметры разрешения доменных имен. Например, директва order hosts , bind означает, что сначала поиск IP-адреса по доменному имени будет произведен в файле /etc/hosts , а затем уже будет обращение к DNS-серверу, заданному в файле /etc/resolv.conf Директива multi on означает, что одному доменному имени могут соответствовать несколько IP-адресов |
/etc/hosts |
В этом файле можно прописать IP-адреса и имена узлов локальной сети , но обычно здесь указывается только IP-адрес узла localhost (127.0.0.1), потому что сейчас даже в небольшой локальной сети устанавливается собственный DNS-сервер |
/etc/hosts.allow | Содержит IP-адреса узлов, которым разрешен доступ к сервисам данного узла |
/etc/hosts.deny | IP-адреса узлов, которым запрещен доступ к сервисам данного узла |
/etc/iftab | Таблица интерфейсов, т.е. соответствие имен интерфейсов и их MAC-адресов |
/etc/motd |
Задает сообщение дня (Message of the day). Данный файл используется многими сетевыми сервисами (напримерб FTP-и SSH-сервисами), которые при регистрации пользователя могут выводить сообщение из этого файла |
/etc/resolv.conf |
Задаёт IP-адреса серверов DNS. Формат файла прост: nameserver IP-адресВсего можно указать четыре DNS-сервера |
/etc/services |
База данных сервисов, задающая соответствие символьного имени сервиса (напрмер, pop3) и номера порта (110/tcp, tcp — это наименование протокола) |
/etc/xinetd.conf |
Конфигурация суперсервера xinetd, предназначенного для запуска сетевых сервисов, которые не работают в автономном режиме |
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: andrey
Prepare to Upgrade
-
Verify that you are booting with Debian’s kernel using the GRUB 2
boot setting in the Linode Cloud Manager. We recommend you use the distribution-supplied kernel unless you have a specific reason not to. -
Exit the SSH session if you’re currently logged in to one and instead open a Lish session to your Linode. Lish will give you continuous access to your Linode whereas SSH could disconnect during the upgrade. Read more about Lish
here. -
Install all available updates for your current Debian system:
-
If you’ve set APT to pin any packages to a specific Debian version other than stable, You’ll need to disable APT pinning for those packages if you want them upgraded to those offered in the newest release.
-
You may want to stop services which are non-essential to the system but important to your setup, such as a database service. This would be to ensure a graceful shutdown of the service to prevent data loss or system locks from causing problems. To stop a service, enter the following command, replacing with the name of the service you want to stop:
You can view all enabled services with:
View all currently running services:
Команды для работы с текстовыми файлами
Команда head
Вы можете воспользоваться командой
head если вам нужно взглянуть только на начало файла. Команда выглядит так:
head <filename>
Команда Head
может быть полезна, но так как она показывает только первых несколько строк,
вы не узнаете насколько велик сам файл. По умолчанию, вы можете просмотреть
первых десять строк файла, хотя вы можете изменить это число, выполнив следующую команду:
head -20
<filename>
Команда tail
Обратное head
действие выполняет tail
. С помощью tail
вы можете просмотреть последние десять строк файла.
Команда grep
Команда grep используется для поиска в файле заданных текстовых строк.
Например, если вы хотите найти все упоминания слова «DEBUG» в файле
reader.ini, выполните:
grep DEBUG reader.ini
Вы увидите все строки этого файла, в которых нашлось слово «DEBUG».
Не забывайте о регистре
Если не указано обратное,
grep ищет с
учётом регистра.
Это означает что поиск
Debug отличается от поиска debug.
Среди множества параметров
grep
есть
-i,
который указывает, что поиск должен выполняться без учёта регистра символов.
Прочитайте страницу man по
grep
man чтобы узнать больше об этой команде.
Перенаправление ввода/вывода и каналы
Вы можете использовать каналы и перенаправление вывода когда хотите
сохранить и/или напечатать информацию для последующего использования.
Например, вы можете воспользоваться командой
grep
чтобы найти в файле требуемый текст, а затем сохранить результат в
файле или отправить его на принтер.
Чтобы напечатать информацию, например, касающуюся
слова «Debug» в файле
sneakers.txt, введите:
grep Debug sneakers.txt | lpr
Знаки подстановки и регулярные выражения
Как быть если вы забыли имя файла, который вам нужен? Воспользовавшись знаками подстановки или регулярными выражениями, вы можете выполнять с файлом или файлами действия, не зная его(их) полного имени. Просто введите всё что знаете, и замените остальное знаком *.
Дополнительная информация о знаках подстановки и регулярных выражениях
Чтобы узнать больше о знаках подстановки
и регулярных выражениях, обратитесь к странице руководства, посвященной
bash (man bash).
Вспомните о том, что вы можете сохранить полученную информацию в текстовом файле,
выполнив команду
man bash | col -b > bash.txt
Затем вы можете открыть и прочитать файл с помощью
less или pico
(pico bash.txt)
Если вы хотите распечатать файл, будьте осторожны, он довольно большой.
Зная, что файл называется «sneak____.txt,» просто введите:
ls sneak*.txt
и вот полное имя файла:
sneakers.txt
Скорее всего при поиске вы чаще будете использовать знак умножения (
*). При поиске с этим знаком найдется всё, соответствующее заданному шаблону.
Даже выполнив:
ls *.txt
или:
ls sn*
Вы найдёте файл
sneakers.txt
и все остальные, имена которых начинаются
с «sn». Это позволяет максимально расширить область поиска.
Одним из способов уменьшения области поиска, является использование знака вопроса
(?). Также как знак умножения,
? помогает находить файл, удовлетворяющий условию поиска.
Однако ?
используется для замены всего одного символа, поэтому если вы ищете
sneaker?.txt, в результате вы найдете файл
sneakers.txt, и/или
sneakerz.txt, если такой файл существует.
В случае, если знак умножения входит в имя файла, как могло бы быть, если файл
sneakers.txt назывался бы
sneak*.txt,
вам понадобятся регулярные выражения.
Регулярные выражения более сложны, чем прямолинейные знаки вопроса и умножения.
С помощью обратной косой черты (\),
вы можете определить, что вы не хотите искать всё
как происходит, если вы укажите знак умножения, а вам нужен именно
знак умножения в имени файла.
Если файл называется
sneak*.txt, введите:
sneak\*.txt
Ниже приведён краткий список знаков подстановки и регулярных выражений:
-
*
— Соответствует любому количеству любых символов -
?
— Соответствует одному любому символу в строке (например,
sneaker?.txt) -
\*
— Соответствует символу * -
\?
— Соответствует символу ? -
\)
— Соответствует символу )