Перейти к основному содержимому

Встроенные модули Switch

Обзор встроенных модулей

Switch поставляется с набором готовых модулей для управления наиболее распространенными альтернативами в системе.

Модуль: editor

Описание

Управление текстовым редактором по умолчанию, используемым системными скриптами и приложениями.

Метаданные

  • Имя: editor
  • Категория: system
  • Управляемая ссылка: /usr/bin/editor
  • Файл модуля: editor.sh

Поддерживаемые редакторы

РедакторПутьПриоритетОписание
nvim/usr/bin/nvim80Neovim - современный форк Vim
vim/usr/bin/vim70Vi IMproved - расширенный vi
nano/usr/bin/nano60Простой консольный редактор
emacs/usr/bin/emacs50Расширяемый редактор GNU
micro/usr/bin/micro45Современный терминальный редактор
helix/usr/bin/helix40Пост-современный модальный редактор
vi/usr/bin/vi30Классический vi
code/usr/bin/code20Visual Studio Code (консольная версия)
kate/usr/bin/kate15KDE Advanced Text Editor
gedit/usr/bin/gedit15GNOME Text Editor

Примеры использования

# Показать доступные редакторы
switch editor list

# Установить nvim
switch editor set nvim

# Проверить текущий редактор
switch editor show

Использование в скриптах

После установки альтернативы, переменная $EDITOR и команда editor будут указывать на выбранный редактор:

# Открыть файл в редакторе по умолчанию
editor myfile.txt

# Использовать в переменной окружения
export EDITOR=/usr/bin/editor
git config --global core.editor editor

Модуль: java

Описание

Управление версией Java Development Kit (JDK) и Java Runtime Environment (JRE).

Метаданные

  • Имя: java
  • Категория: development
  • Управляемые ссылки:
    • /usr/bin/java
    • /usr/bin/javac
    • /usr/bin/jar
  • Файл модуля: java.sh

Поддерживаемые версии

Модуль автоматически находит установленные версии Java в стандартных расположениях:

  • /usr/lib/jvm/java-*-openjdk/bin/java
  • /usr/lib/jvm/java-*/bin/java
  • /opt/java/*/bin/java

Приоритеты версий

ВерсияПриоритет
Java 21100
Java 17 (LTS)95
Java 11 (LTS)85
Java 8 (LTS)75
Другие версии50

Примеры использования

# Показать доступные версии Java
switch java list

# Установить Java 17
switch java set java-17-openjdk

# Проверить текущую версию
switch java show

# Проверить через java напрямую
java -version

Использование в разработке

# Установить JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk

# Проверить версию компилятора
javac -version

# Запуск Java-приложения
java -jar application.jar

Модуль: python

Описание

Управление версией интерпретатора Python, используемого по умолчанию.

Метаданные

  • Имя: python
  • Категория: development
  • Управляемые ссылки:
    • /usr/bin/python
    • /usr/bin/python3
  • Файл модуля: python.sh

Поддерживаемые версии

Модуль находит все установленные версии Python 3.x:

  • /usr/bin/python3.12
  • /usr/bin/python3.11
  • /usr/bin/python3.10
  • /usr/bin/python3.9
  • И другие версии в /usr/bin/

Приоритеты версий

ВерсияПриоритет
Python 3.12100
Python 3.1195
Python 3.1090
Python 3.985
Более старыеДинамически (версия × 10)

Примеры использования

# Показать доступные версии Python
switch python list

# Установить Python 3.12
switch python set python3.12

# Проверить текущую версию
switch python show

# Проверить через python напрямую
python --version
python3 --version

Использование в разработке

# Создание виртуального окружения
python -m venv myenv

# Установка пакетов
pip install package-name

# Запуск скриптов
python script.py

Модуль: kernel

Описание

Управление версией ядра Linux, используемой при загрузке системы.

Метаданные

  • Имя: kernel
  • Категория: system
  • Управляемые ссылки:
    • /boot/vmlinuz
    • /boot/initrd.img
  • Файл модуля: kernel.sh
  • Требования: Права root
Внимание

Этот модуль требует прав суперпользователя для работы. Неправильная конфигурация может привести к невозможности загрузки системы.

Поддерживаемые ядра

Модуль находит все установленные ядра в /boot/:

  • /boot/vmlinuz-*
  • Соответствующие initrd/initramfs образы

Примеры использования

# Показать доступные ядра (требует root)
sudo switch kernel list

# Установить ядро 6.8.0
sudo switch kernel set 6.8.0

# Проверить текущее ядро
sudo switch kernel show

# Проверить загруженное ядро
uname -r

Интеграция с загрузчиком

После изменения ядра необходимо обновить конфигурацию загрузчика:

# Для GRUB
sudo grub-mkconfig -o /boot/grub/grub.cfg

# Для systemd-boot
sudo bootctl update

Расположение модулей

Системные модули

/usr/share/switch/modules/
├── editor.sh
├── java.sh
├── kernel.sh
└── python.sh

Пользовательские модули

~/.local/share/switch/modules/
└── (пользовательские модули)

Проверка модулей

Список всех модулей

switch --list-modules

Пример вывода:

Available modules:
editor (system) Manage default text editor
java (development) Manage Java version
kernel (system) Manage kernel version
python (development) Manage Python version

Подробная информация о модуле

switch <модуль> help

Проверка файлов модуля

# Просмотр системных модулей
ls -l /usr/share/switch/modules/

# Просмотр пользовательских модулей
ls -l ~/.local/share/switch/modules/