Rocky

Contents
Introduction
Установка Rocky
После установки
Узнать версию Rocky
Software Installation
Получить доступ к sudo
Установка Golang
Полезные команды
Типы файлов
Изменить пароль пользователя
Узнать текущую локаль
Изменить текущую локаль
Статьи про Rocky

Introduction

Rocky Linux-это предстоящий дистрибутив Linux, который в настоящее время находится в разработке.

Он предназначен для последующего, полного двоичного совместимого выпуска с использованием исходного кода операционной системы Red Hat Enterprise Linux (RHEL).

Цель проекта состоит в том, чтобы обеспечить поддерживаемую сообществом производственную корпоративную операционную систему.

Версия-кандидат на выпуск Rocky Linux была выпущена 30 апреля 2021 года.

Установка Rocky

Скачать образ можно на сайте www.rockylinux.org

Сайт загрузки образов rocky 7 image from website www.aredel.com
Зеркало для загрузки Rocky

Пошаговая инструкция по установке 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

Software Installation

Для начала неплохо обновить пакетный менеджер. В Rocky он называется yum

yum update

Для тихой установки use flag -y

yum install -y redhat-lsb-core net-tools epel-release kernel-headers kernel-devel

yum groupinstall -y "Development Tools"

Для установки графической оболочки execute command

yum groupinstall -y "X Window System" "MATE Desktop"

Добавить пользователя в группу sudo

У всех пользователей из группы wheel есть возможность выполнять команду sudo поэтому нужно стать root

su

И из-под root добавить пользователя в группу wheel командой

usermod -aG wheel andrei

Снова стать пользователем можно выполнив

su andrei

Network Configuration

Рассмотрена в отдельной статье - «Настройка сетевых подключений в 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

Совпадает со значением на сайте - посмотрите на нижнюю строку

Установка образа через сеть VirtualBox image from website www.aredel.com

Распакуйте архив

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 - чтобы перейти в иксы

To узнать называние своей консоли execute

tty

/dev/pts/0

To узнать кто подключён к системе execute

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

Для просмотра дисков/блоков execute

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. To сразу получить дополнительную информацию execute

ls -lF $(which lsb_release)

-rwxr-xr-x. 1 root root 15929 Apr 18 19:47 /usr/bin/lsb_release*

Опция -F означает показать тип файлов. Поэтому нам удалось увидеть * после lsb_release. * означает, что файл исполняемый.

To узнать откуда взялся файл можно воспользоваться командой rpm с опциями q (query) и f (file)

rpm -qf $(which lsb_release)

redhat-lsb-core-4.1-47.el8.x86_64

To скопировать файл в интерактивном режиме воспользуйтесь командой cp с опцией i (interactive)

interactive означает, что если файл с таким имененм существует, вас спросят прежде чем затирать его

cp -i /etc/hosts .
cp -i /etc/hosts .

cp: overwrite ‘./hosts’?

To создать директорию сразу же с поддиректорией внутри воспользуйтесь командлой mkdir с опцией p (parent)

mkdir -p sites/heiheiru
ls -l sites

total 0
drwxrwxr-x. 2 andrei andrei 6 Nov 19 13:40 heiheiru

To создать одновременно несколько файлов с именами идущими по порядку execute 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

To скопировать директорию files в директорию sites со всем содержимым execute

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 вы можете наглядно изучить вложенность. Если нет - execute сперва 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 и порт сервера

To изучить содержимое длинного тестового файла execute

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

Изменить пароль пользователя

To в rocky изменить пароль пользователя execute команду 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

To в 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

To в 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 - execute команду

sudo sed -i s/LANG=\"en_US\.UTF-8\"/LANG=\"en_US\.iso88591\"/ /etc/locale.conf

To проверить изменения execute

localectl status

System Locale: LANG=en_US.iso88591 VC Keymap: us X11 Layout: us

To изменить системную переменную, например, LC_CTYPE execute

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

Related Articles
Rocky Linux
Install Rocky
Network Configuration in Rocky
Firewall
Date and Time
X Window System Rocky
XRDP: Remote Desktop
VNC: Remote Desktop
Change machine-id
Change ulimit
xclip: work with buffer
SELinux
docker-ce: install in Rocky
dnf vs yum
FAQ
Errors