Шпаргалка по повседневным задачам в OpenSUSE. Команды, которые постоянно забываешь, а гуглить надоело.

Zypper — пакетный менеджер

OpenSUSE использует zypper для управления пакетами. Я постарался выписать все команды, которые я использовал хотя бы раз.

# Обновить список пакетов
sudo zypper refresh
# или коротко:
sudo zypper ref

# Обновить все пакеты
sudo zypper update
# или коротко:
sudo zypper up

# Полноценный апгрейд дистрибутива (смена версии, например 15.5 → 15.6)
sudo zypper dist-upgrade
# или:
sudo zypper dup
# Поиск пакета по названию или описанию
zypper search nginx
zypper se nginx

# Информация о пакете (версия, описание, зависимости)
zypper info nginx
zypper if nginx

# Установка
sudo zypper install nginx
sudo zypper in nginx

# Удаление
sudo zypper remove nginx
sudo zypper rm nginx

# Удаление вместе с неиспользуемыми зависимостями
sudo zypper remove --clean-deps nginx
sudo zypper rm -u nginx
# Список подключённых репозиториев
zypper repos
zypper lr

# Добавить репозиторий (пример: Packman для кодеков)
sudo zypper addrepo https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Tumbleweed/ packman
sudo zypper ar https://... packman

# Удалить репозиторий
sudo zypper removerepo packman
sudo zypper rr packman

# Обновить репозитории и сразу установить пакет (без отдельного refresh)
sudo zypper in -y nginx
# Посмотреть историю операций zypper
cat /var/log/zypp/history

# Найти, какому пакету принадлежит файл
zypper what-provides /usr/bin/nginx

Snapper — снимки Btrfs

Главная фишка OpenSUSE: снапшоты корневой файловой системы «из коробки». Перед каждым zypper update система автоматически делает снимок. Если обновление что-то сломало — откатываешься за минуту.

# Список снимков
sudo snapper list
# Вывод: номер, дата, тип (pre/post), описание

# Создать снимок вручную
sudo snapper create --description "До установки ядра 6.10"

# Посмотреть, какие файлы изменились между снимками
sudo snapper status 42..43
# + /etc/nginx/nginx.conf    — добавлен или изменён
# - /tmp/old-stuff           — удалён

# Посмотреть diff конкретного файла между снимками
sudo snapper diff 42..43 /etc/nginx/nginx.conf

# Откатить изменения одного файла
sudo snapper undochange 42..43 /etc/nginx/nginx.conf

# Полный откат системы к снимку (требует перезагрузки)
sudo snapper rollback 42
# После перезагрузки система будет в состоянии снимка 42
# Настроить автоматическую очистку старых снимков
sudo snapper -c root set-config NUMBER_LIMIT=10
# Параметры конфигурации: /etc/snapper/configs/root

# Включить временные шкалы (hourly/daily/weekly/monthly/yearly)
sudo snapper -c root set-config TIMELINE_CREATE=yes

При загрузке в Grub можно выбрать «Boot from read-only snapshot» и загрузиться в любой предыдущий снимок.


YaST — центр управления системой

YaST (Yet another Setup Tool) — графический и консольный инструмент администрирования, аналог панели управления.

# Запуск ncurses-версии в терминале
sudo yast2

# Отдельные модули (без входа в главное меню):
sudo yast2 lan              # Настройка сети
sudo yast2 firewall         # Брандмауэр
sudo yast2 services-manager # Управление службами (аналог systemctl с GUI)
sudo yast2 software         # Управление пакетами (GUI над zypper)
sudo yast2 users            # Пользователи и группы
sudo yast2 disk             # Разбивка дисков
sudo yast2 nfs              # NFS-клиент и сервер
sudo yast2 samba-server     # Настройка Samba

YaST умеет экспортировать/импортировать конфигурацию (/etc/sysconfig/) — удобно, если нужна воспроизводимость.


systemd — службы и логи

# Состояние службы
sudo systemctl status nginx

# Запуск / остановка / перезапуск
sudo systemctl start nginx
sudo systemctl stop nginx
sudo systemctl restart nginx

# Включить автозапуск при загрузке
sudo systemctl enable nginx
# Выключить автозапуск
sudo systemctl disable nginx

# Перезагрузить конфигурацию без прерывания работы (где поддерживается)
sudo systemctl reload nginx

# Список запущенных служб
sudo systemctl list-units --type=service --state=running

# Список провалившихся служб
sudo systemctl --failed
# Лог конкретной службы (с сегодняшнего дня)
sudo journalctl -u nginx --since today

# Лог с момента последней загрузки
sudo journalctl -b

# Лог предыдущей загрузки (если система падала)
sudo journalctl -b -1

# Лог ядра
sudo journalctl -k

# Следить за логом в реальном времени
sudo journalctl -f

# Очистить старые логи (оставить последние 500M)
sudo journalctl --vacuum-size=500M

RPM — низкоуровневая работа с пакетами

zypper — фронтенд к RPM. Иногда нужно копнуть глубже (Но не всегда).

# Список всех установленных пакетов
rpm -qa
# По имени:
rpm -qa | grep nginx

# Информация об установленном пакете
rpm -qi nginx

# Список файлов, установленных пакетом
rpm -ql nginx

# Какому пакету принадлежит файл
rpm -qf /usr/bin/nginx

# Проверить целостность пакета (не изменены ли файлы)
rpm -V nginx

# Установить локальный .rpm файл
sudo rpm -ivh package.rpm

# Просмотреть скрипты, выполняемые при установке/удалении
rpm -q --scripts nginx

Паттерны (patterns)

OpenSUSE группирует пакеты в «паттерны» — наборы для типовых сценариев: веб-сервер, KDE, разработка и т.д.

# Список доступных паттернов
zypper patterns
zypper pt

# Информация о паттерне
zypper info -t pattern devel_basis

# Установить паттерн целиком
sudo zypper install -t pattern devel_basis
# Примеры: devel_basis (компиляторы, make), kde_plasma, gnome_basis,
# lamp_server, file_server, x11, office

Полезные мелочи

# Версия дистрибутива
cat /etc/os-release

# Информация о ядре и архитектуре
uname -a

# Свободное место на дисках
df -h

# Какие Btrfs-подтома смонтированы
sudo btrfs subvolume list /

# Переключиться на консоль (TTY)
Ctrl+Alt+F1..F6
# Вернуться в графику
Ctrl+Alt+F7