В предыдущей теме я рассматривал установку СБИС плагина.
В отличие от той темы, в этой я предусмотрел одну единственную ссылку и один единственный скрипт-установщик.
Инструкция по установке Госплагина на Arch-based Linux системы на примере SteamOS (SteamDeck):
Качаем Госплагин отсюда
Я скачал Linux deb-based сразу в папку Downloads.
Скачается архив. Сразу же его распаковываем в эту же папку Downloads. Разархивированный файл переименовываем в Gosplugin_Linux-Debian_Installer.deb.sh.
Открываем терминал и устанавливаем WebKit, который часто требуется для Госплагина:
Для пользователей SteamOS начать с:
sudo steamos-readonly disable
Для всех остальных можно сразу начинать с:
sudo pacman -S webkit2gtk
Переходим в папку Downloads:
cd ~/Downloads
Создаем новый текстовый документ и называем его install_gosplugin.sh
Открываем его любым текстовым редактором и вставляем скрипт-установщик:
#!/bin/bash
# =============================================================================
# SCRYPT: Автоматическая установка Госуслуг Плагин на SteamOS
# =============================================================================
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
log_info() {
echo -e "${GREEN}[INFO]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# Имя файла установщика
INSTALLER_NAME="Gosplugin_Linux-Debian_Installer.deb.sh"
INSTALLER_PATH="$HOME/Downloads/$INSTALLER_NAME"
# Папка для распаковки
TEMP_DIR="$HOME/gosplugin_install"
mkdir -p "$TEMP_DIR"
# =============================================================================
# ШАГ 1: Проверки
# =============================================================================
log_info "Поиск установщика..."
if [ ! -f "$INSTALLER_PATH" ]; then
log_error "Файл не найден: $INSTALLER_PATH"
log_error "Пожалуйста, скачайте файл и положите его в папку ~/Downloads/"
exit 1
fi
if ! command -v dpkg &> /dev/null; then
log_error "dpkg не установлен. Установите его через pacman."
exit 1
fi
# =============================================================================
# ШАГ 2: Извлечение .deb из самораспаковывающегося архива
# =============================================================================
log_info "Извлечение внутреннего .deb пакета..."
# ИСПРАВЛЕНИЕ: Добавлен флаг -a, чтобы grep читал двоичный файл как текст
PAYLOAD_LINE=$(grep -a -n '^PAYLOAD:$' "$INSTALLER_PATH" | cut -d: -f1)
if [ -z "$PAYLOAD_LINE" ]; then
log_error "Не удалось найти метку PAYLOAD в файле. Возможно, файл поврежден или неправильное имя."
exit 1
fi
log_info "Найдена метка на строке $PAYLOAD_LINE. Распаковка..."
# Извлекаем архив (хвост файла) в папку
tail -n +$((PAYLOAD_LINE + 1)) "$INSTALLER_PATH" | tar -x -C "$TEMP_DIR"
# Ищем распакованный .deb файл
DEB_FILE=$(find "$TEMP_DIR" -maxdepth 1 -type f -name "*.deb")
if [ -z "$DEB_FILE" ]; then
log_error "Внутри архива не найден .deb файл."
exit 1
fi
log_info "Найден пакет: $(basename $DEB_FILE)"
# =============================================================================
# ШАГ 3: Распаковка .deb пакета
# =============================================================================
log_info "Распаковка содержимого пакета..."
EXTRACT_DIR="$TEMP_DIR/extracted"
mkdir -p "$EXTRACT_DIR"
dpkg -x "$DEB_FILE" "$EXTRACT_DIR"
# =============================================================================
# ШАГ 4: Установка файлов в систему
# =============================================================================
log_info "Установка файлов в систему..."
# Копируем /opt
if [ -d "$EXTRACT_DIR/opt" ]; then
sudo cp -rn "$EXTRACT_DIR/opt/"* /opt/
log_info "/opt обновлен."
fi
# Копируем /usr
if [ -d "$EXTRACT_DIR/usr" ]; then
sudo cp -rn "$EXTRACT_DIR/usr/"* /usr/
log_info "/usr обновлен."
fi
# Копируем /etc (важно для systemd службы)
if [ -d "$EXTRACT_DIR/etc" ]; then
sudo cp -rn "$EXTRACT_DIR/etc/"* /etc/
log_info "/etc обновлен."
fi
# =============================================================================
# ШАГ 5: Установка зависимостей (Token Support)
# =============================================================================
log_info "Проверка поддержки токенов (pcscd, opensc)..."
# Проверяем установлен ли pcsclite (демон для смарт-карт)
if ! pacman -Qi pcsclite &> /dev/null; then
log_warn "pcsclite не найден. Попытка установки..."
sudo pacman -S --noconfirm pcsclite
fi
# Проверяем opensc (драйверы для токенов)
if ! pacman -Qi opensc &> /dev/null; then
log_warn "opensc не найден. Попытка установки..."
sudo pacman -S --noconfirm opensc
fi
# =============================================================================
# ШАГ 6: Настройка прав доступа
# =============================================================================
log_info "Настройка прав доступа..."
if [ -d "/opt/gosuslugi-plugin" ]; then
sudo chown -R root:root /opt/gosuslugi-plugin
sudo chmod -R 755 /opt/gosuslugi-plugin
log_info "Права настроены для /opt/gosuslugi-plugin"
fi
# =============================================================================
# ШАГ 7: Активация службы
# =============================================================================
log_info "Настройка системной службы..."
sudo systemctl daemon-reload
# Ищем имя файла службы (обычно gosuslugi-plugin.service)
SERVICE_FILE="/etc/systemd/system/gosuslugi-plugin.service"
if [ -f "$SERVICE_FILE" ]; then
sudo systemctl enable gosuslugi-plugin.service
sudo systemctl start gosuslugi-plugin.service
# Проверка статуса
sleep 2
if systemctl is-active --quiet gosuslugi-plugin.service; then
log_info "Служба Госуслуг успешно запущена!"
else
log_error "Служба не запустилась. Проверьте логи: journalctl -xe"
fi
else
log_warn "Файл службы systemd не найден. Возможно, плагин не требует фоновой службы или устанавливается по-другому."
fi
# =============================================================================
# ШАГ 8: Очистка
# =============================================================================
log_info "Очистка временных файлов..."
rm -rf "$TEMP_DIR"
# =============================================================================
# ФИНАЛ
# =============================================================================
echo ""
log_info "=================================================="
log_info "УСТАНОВКА ГОСПЛАГИНА ЗАВЕРШЕНА!"
log_info "=================================================="
log_warn "Если плагин не работает в браузере:"
log_warn "1. Убедитесь, что расширение браузера включено (если требуется)."
log_warn "2. Проверьте статус службы: systemctl status gosuslugi-plugin"
log_warn "3. Если ругается на библиотеки (webkit), установите: sudo pacman -S webkit2gtk"
log_info "=================================================="
Сохраняем скрипт.
В терминале вводим:
chmod +x install_gosplugin.sh
Затем:
./install_gosplugin.sh
Скрипт сам установит Госплагин, который вы разархивировали, запустит его и повесит как службу.
Инструкции из этой темы подразумевают, что вы разобрались, как поставить Chromium-GOST, Рутокен/JaKarta и библиотеки зависимостей на свою машину под управлением Arch-based системы. Если нужна инструкция по полной интеграции всех этих ништяков в Arch-based Linux или инструкция для ДиаДок, то напишите мне в лс форума или здесь, в комментариях.