Rocky
Введение
Rocky Linux-это предстоящий дистрибутив Linux, который в настоящее время находится в разработке.
Он предназначен для последующего, полного двоичного совместимого выпуска с использованием исходного кода операционной системы Red Hat Enterprise Linux (RHEL).
Цель проекта состоит в том, чтобы обеспечить поддерживаемую сообществом производственную корпоративную операционную систему.
Версия-кандидат на выпуск Rocky Linux была выпущена 30 апреля 2021 года.
Установка Rocky
Скачать образ можно на сайте www.rockylinux.org
Пошаговая инструкция по
установке Rocky Linux находится
здесь
Установка Rocky Linux на VirtualBox
После установки
Рекомендую выполнить следующее
sudo yum -y update
sudo yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel yum-utils
sudo yum groupinstall -y "Development Tools"
Скорее всего придётся включить сетевые интерфейсы
Узнать версию
Узнать версию установленной rocky можно командой
cat /etc/system-release
Rocky Linux release 8.4 (Green Obsidian)
Или
cat /etc/rocky-release
Rocky Linux release 8.4 (Green Obsidian)
Или
rpm -q rocky-release
rocky-release-8.4-26.el8.noarch
Если установить пакет redhat-lsb
lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch Distributor ID: Rocky Description: Rocky Linux release 8.4 (Green Obsidian) Release: 8.4 Codename: GreenObsidian
Если достаточно только главной версии, можно использовать
rpm --eval %{rocky_ver}
8
Установка программ
Для начала неплохо обновить пакетный менеджер. В Rocky он называется yum
yum update
Для тихой установки используйте флаг -y
yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel
yum groupinstall -y "Development Tools"
Для установки графической оболочки используйте команду
yum groupinstall -y "X Window System" "MATE Desktop"
Добавить пользователя в группу sudo
У всех пользователей из группы wheel есть возможность выполнять команду sudo поэтому нужно стать root
su
И из-под root добавить пользователя в группу wheel командой
usermod -aG wheel andrei
Снова стать пользователем можно выполнив
su andrei
Настройка сети
Рассмотрена в отдельной статье - «Настройка сетевых подключений в rocky»
Установка wget
sudo yum install wget
Установка Go
Скачать Golang можно с сайта golang.org
wget https://golang.org/dl/go1.15.5.linux-386.tar.gz
После скачивания проверьте, что контрольная сумма совпадает с записанной на сайте
sha256sum go1.15.5.linux-386.tar.gz
4c8179d406136979724c71732009c7e2e7c794dbeaaa2a043c00da34d4be0559 go1.15.5.linux-386.tar.gz
Совпадает со значением на сайте - посмотрите на нижнюю строку
Распакуйте архив
sudo tar -C /usr/local -xzf go1.15.5.linux-386.tar.gz
Добавьте путь до go в PATH
vi ~/.bash_profile
export PATH=$PATH:/usr/local/go/bin
Создайте рабочую директорию
mkdir ~/go
Проверьте установился ли Go
go version
Если получили что-то подобное
go version go1.15.5 linux/386
То всё хорошо
Если получили ошибку
-bash: /usr/local/go/bin/go: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
Попробуйте установить glibc.i686
sudo yum install glibc.i686
Установка X
Установка и настройка X сервера ассмотрены в отдельной статье - «X Window System в rocky»
Полезные команды
Перемещение между X и реальным терминалом (physical terminal) осуществляется нажатием правого CTRL + F2 - чтобы перейти в консоль
Правый CTRL + F1 - чтобы перейти в иксы
Чтобы узнать называние своей консоли выполните
tty
/dev/pts/0
Чтобы узнать кто подключён к системе выполните
who
andrei tty1 2020-11-19 11:03 (:0) andrei pts/0 2020-11-19 11:45 (:0) andrei tty2 2020-11-19 11:42 andrei pts/1 2020-11-19 11:48 (192.168.56.1)
tty1 и tty2 это реальные терминалы
pts/0 это псевдо терминал (pseudo terminal) запущенный в исках на локально машине
pts/1 это псевдо терминал на удалённой машине с IP 192.168.56.1 с которого я подключился по ssh
В
Linux
всё является файлами и tty терминалы не исключение.
Выполните
ls -l $(tty)
Или аналогичную команду
ls -l /dev/pts/1
crw--w----. 1 andrei tty 136, 1 Nov 19 12:43 /dev/pts/1
Первый символ - это тип файла.
Доступно семь типов файлов: обычные, директории, символьные, блоки, сокеты, именованые каналы, символьные ссылки
- : regular file
d : directory
c : character device file
b : block device file
s : local socket file
p : named pipe
l : symbolic link
Тип c означает character. То есть этот файл может
принимать и показывать символы
Если выполнить
ls -ld /etc
drwxr-xr-x. 118 root root 8192 Nov 19 11:02 /etc
Видно, что тип файла d. То есть directory
Для просмотра дисков/блоков выполните
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 8G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 8:2 0 7G 0 part ├─rocky-root 253:0 0 6.2G 0 lvm / └─rocky-swap 253:1 0 820M 0 lvm [SWAP] sr0 11:0 1 57.7M 0 rom /run/media/andrei/VBox_GAs_6.1.10
Если выполнить
ls -l /dev/sda*
brw-rw----. 1 root disk 8, 0 Nov 19 11:02 /dev/sda brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
Можно убедитсья, что тип файлов b. То есть block
? означает что должен быть один любой символ.
ls -l /dev/sda?
brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
[12] означает что должен быть либо символ 1 либо символ 2
ls -l /dev/sda[12]
brw-rw----. 1 root disk 8, 1 Nov 19 11:02 /dev/sda1 brw-rw----. 1 root disk 8, 2 Nov 19 11:02 /dev/sda2
Когда вы хотите узнать версию системы вы можете выполнить
ls -l /etc/system-release
lrwxrwxrwx. 1 root root 13 Jun 19 10:22 /etc/system-release -> rocky-release
Тип файла l означает link то есть это не настоящий файл, а ссылка
Выполните
ls -l /etc/system-release /etc/rocky-release /etc/redhat-release
lrwxrwxrwx. 1 root root 13 Jun 19 10:22 /etc/redhat-release -> rocky-release -rw-r--r--. 1 root root 41 Jun 19 10:22 /etc/rocky-release lrwxrwxrwx. 1 root root 13 Jun 19 10:22 /etc/system-release -> rocky-release
/etc/rocky-release - это настоящий (regular) файл а остальные - ссылки на него.
Если бы вы пользовались redhat то настоящим был бы redhat-release
Ещё один способ получить информацию о версии - выполнить lsb_release -d где -d означает description
lsb_release -d
Description: Rocky Linux release 8.4 (Green Obsidian)
Узнать где находится файл lsb_release можно командой which lsb_release. Чтобы сразу получить дополнительную информацию выполните
ls -lF $(which lsb_release)
-rwxr-xr-x. 1 root root 15929 Apr 18 19:47 /usr/bin/lsb_release*
Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл исполняемый.
Чтобы узнать откуда взялся файл можно воспользоваться командой rpm с опциями q (query) и f (file)
rpm -qf $(which lsb_release)
redhat-lsb-core-4.1-47.el8.x86_64
Чтобы скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)
interactive означает, что если файл с таким имененм существует, вас спросят прежде чем затирать его
cp -i /etc/hosts .
cp -i /etc/hosts .
cp: overwrite ‘./hosts’?
Чтобы создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой mkdir с опцией p (parent)
mkdir -p sites/heiheiru
ls -l sites
total 0
drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru
Чтобы создать одновременно несколько файлов с именами идущими по порядку выполните touch с {}
touch files/file{1..5}
ls -l files
-rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:46 file5
Чтобы скопировать директорию files в директорию sites со всем содержимым выполните
cp -R files sites
ls -l sites/files/
total 0 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file1 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file2 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file3 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file4 -rw-rw-r--. 1 andrei andrei 0 Nov 19 13:49 file5
Директория files была скопирована в директорию sites, то есть теперь у sites есть
поддиректория files.
Если у вас установлен модуль tree вы можете наглядно изучить вложенность.
Если нет - выполните сперва sudo yum install tree
tree sites
sites └── files ├── file1 ├── file2 ├── file3 ├── file4 └── file5 1 directory, 5 files
Создать ссылку можно командой ln, символьную ссылку ln -s
Очистить терминал можно нажав CTRL + l
Изучить детали своего SSH подключения можно командой
echo $SSH_CONNECTION
192.168.56.1 52350 192.168.56.101 22
Сперва идут IP и порт клиента, затем IP и порт сервера
Чтобы изучить содержимое длинного тестового файла выполните
less filename
Для поиска вперёд нажмите / для поиска назад ?
Поиск
Просто найти
find /usr/share/doc -name '*.pdf'
Найти и сразу скопировать в текущую директорию
find /usr/share/doc -name '*.pdf' -exec cp {} . \;
Найти в текущей директории
find -name '*.pdf'
Удалить из текущей директории
find -name '*.pdf' -delete
Найти все ссылки
find /etc -type l
Найти все ссылки только на верхнем уровне вложенности
find /etc -maxdepth 1 -type l
df -h /boot
Filesystem Size Used Avail Use% Mounted on /dev/sda1 1014M 194M 821M 20% /boot
Найти обычные файлы определённого размера
find /boot -size +20000k -type f
find: ‘/boot/efi/EFI/rocky’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img
find /boot -size +10000k -type f
find: ‘/boot/efi/EFI/rocky’: Permission denied find: ‘/boot/grub2’: Permission denied /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img /boot/initramfs-3.10.0-1160.el7.x86_64.img /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
То же самое плюс показать размер файлов
find /boot -size +10000k -type f -exec du -h {} \;
find: ‘/boot/efi/EFI/rocky’: Permission denied find: ‘/boot/grub2’: Permission denied 60M /boot/initramfs-0-rescue-389ee10be1b38d4281b9720fabd80a37.img 21M /boot/initramfs-3.10.0-1160.el7.x86_64.img 13M /boot/initramfs-3.10.0-1160.el7.x86_64kdump.img 21M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64.img 14M /boot/initramfs-3.10.0-1160.2.2.el7.x86_64kdump.img
Изменить пароль пользователя
Чтобы в rocky изменить пароль пользователя выполните команду passwd
[andrei@localhost ~]$ sudo passwd andrei
[sudo] password for andrei:
Changing password for user andrei.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
locale
Чтобы в rocky узнать текущую locale
cat /etc/locale.conf
LANG="en_US.UTF-8"
или
localectl status
System Locale: LANG=en_US.UTF-8 VC Keymap: us X11 Layout: us
Список доступных локалей
localectl list-locales
aa_DJ aa_DJ.iso88591 aa_DJ.utf8 aa_ER aa_ER.utf8 aa_ER.utf8@saaho aa_ER@saaho aa_ET aa_ET.utf8 af_ZA af_ZA.iso88591 af_ZA.utf8 am_ET am_ET.utf8 an_ES an_ES.iso885915 an_ES.utf8 ar_AE ar_AE.iso88596 ar_AE.utf8 ar_BH ar_BH.iso88596 ar_BH.utf8 ar_DZ ar_DZ.iso88596 ar_DZ.utf8 ar_EG ar_EG.iso88596 ar_EG.utf8 ar_IN ar_IN.utf8 ar_IQ
Выбрать только английский
localectl list-locales | grep en_US
en_US en_US.iso88591 en_US.iso885915 en_US.utf8
Список системных переменных, связанных с локалью доступен по команде
locale
LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE="en_US.UTF-8" LC_MONETARY=en_US.UTF-8 LC_MESSAGES="en_US.UTF-8" LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL=
Подробная информация по каждой переменной может быть получена с помощью флагов -c -k
locale -c -k LC_TIME
LC_TIME abday="Sun;Mon;Tue;Wed;Thu;Fri;Sat" day="Sunday;Monday;Tuesday;Wednesday;Thursday;Friday;Saturday" abmon="Jan;Feb;Mar;Apr;May;Jun;Jul;Aug;Sep;Oct;Nov;Dec" mon="January;February;March;April;May;June;July;August;September;October;November;December" am_pm="AM;PM" d_t_fmt="%a %d %b %Y %r %Z" d_fmt="%m/%d/%Y" t_fmt="%r" t_fmt_ampm="%I:%M:%S %p" era= era_year="" era_d_fmt="" alt_digits= era_d_t_fmt="" era_t_fmt="" time-era-num-entries=0 time-era-entries="S" week-ndays=7 week-1stday=19971130 week-1stweek=7 first_weekday=1 first_workday=2 cal_direction=1 timezone="" date_fmt="%a %b %e %H:%M:%S %Z %Y" time-codeset="UTF-8"
locale -c -k LC_CTYPE
LC_CTYPE ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum";"combining";"combining_level3" ctype-map-names="toupper";"tolower";"totitle" ctype-width=16 ctype-mb-cur-max=6 charmap="UTF-8" ctype-class-offset=72 ctype-map-offset=86 ctype-indigits_mb-len=1 ctype-indigits0_mb="0" ctype-indigits1_mb="1" ctype-indigits2_mb="2" ctype-indigits3_mb="3" ctype-indigits4_mb="4" ctype-indigits5_mb="5" ctype-indigits6_mb="6" ctype-indigits7_mb="7" ctype-indigits8_mb="8" ctype-indigits9_mb="9" ctype-indigits_wc-len=1 ctype-outdigit0_mb="0" ctype-outdigit1_mb="1" ctype-outdigit2_mb="2" ctype-outdigit3_mb="3" ctype-outdigit4_mb="4" ctype-outdigit5_mb="5" ctype-outdigit6_mb="6" ctype-outdigit7_mb="7" ctype-outdigit8_mb="8" ctype-outdigit9_mb="9" ctype-outdigit0_wc=48 ctype-outdigit1_wc=49 ctype-outdigit2_wc=50 ctype-outdigit3_wc=51 ctype-outdigit4_wc=52 ctype-outdigit5_wc=53 ctype-outdigit6_wc=54 ctype-outdigit7_wc=55 ctype-outdigit8_wc=56 ctype-outdigit9_wc=57 ctype-translit-tab-size=4554 ctype-translit-default-missing-len=1 ctype-translit-ignore-len=0 ctype-translit-ignore="" map-to-nonascii=0
Список доступных локалей
locale -a
Изменить locale
Чтобы в rocky изменить locale можно либо откредактирвоать файл locale.conf в /etc/ либо применить команду localect (начиная с rocky 7)
Предположим, что нужно поменять локаль на en_us.iso88591
Откройте
locale.conf
и найдите строку LANG
sudo vi /etc/locale.conf
LANG="en_US.UTF-8"
Замените UTF-8 на iso88591
LANG="en_US.iso88591"
Альтернативный способ с использованием sed - выполните команду
sudo sed -i s/LANG=\"en_US\.UTF-8\"/LANG=\"en_US\.iso88591\"/ /etc/locale.conf
Чтобы проверить изменения выполните
localectl status
System Locale: LANG=en_US.iso88591 VC Keymap: us X11 Layout: us
Чтобы изменить системную переменную, например, LC_CTYPE выполните
sudo vi ~/.bashrc
И внесите в конец файла следующий код
LC_CTYPE="en_US.iso88591"
export LC_CTYPE
locale -c -k LC_CTYPE
LC_CTYPE ctype-class-names="upper";"lower";"alpha";"digit";"xdigit";"space";"print";"graph";"blank";"cntrl";"punct";"alnum";"combining";"combining_level3" ctype-map-names="toupper";"tolower";"totitle" ctype-width=16 ctype-mb-cur-max=1 charmap="ISO-8859-1"
Узнать свой machine-id
cat /etc/machine-id
4af06fd2a0bc4a759da55cb099e1f0f4
Изменить machine-id
Удалите старый machine-id
sudo rm /etc/machine-id
Сгенерируйте новый machine-id
sudo systemd-machine-id-setup
Проверьте результат
cat /etc/machine-id
Теперь желательно перезагрузиться и проверить всё ли работает правильно
Если генерируется всё время один и тот же id значит скорее всего он берётся откуда-то ещё
Можно сгенерировать его самостоятельно с помощью dbus--uuidgen
rm -f /etc/machine-id
dbus-uuidgen --ensure=/etc/machine-id
dbus-uuidge --ensure
cat /etc/machine-id