Загрузка данных
2.2 Настройка параметров операционной системы, драйверов и служб
Для проверки версии ядра, состояния оборудования и системных служб были установлены диагностические утилиты. Также была включена служба автоматической оптимизации системных параметров.
sudo apt install -y linux-tools-common linux-tools-generic cpufrequtils tuned hardinfo cpu-x
uname -r
sudo systemctl enable tuned
sudo systemctl start tuned
systemctl status tuned
После установки утилит была проверена информация о системе, процессоре, памяти и драйверах. Это подтверждает корректную работу операционной системы на выбранной рабочей станции.
2.3 Проверка интернет-соединения
Проверено сетевое подключение. Командой ip a определен активный сетевой интерфейс, а командой ping подтвержден доступ к сети Интернет.
ip a
ping -c 4 google.com
2.4 Установка базового программного обеспечения
Установлены базовые утилиты для загрузки файлов, работы с архивами, управления репозиториями, настройки системы и выполнения команд администрирования.
sudo apt install -y curl wget git unzip zip build-essential software-properties-common apt-transport-https ca-certificates gnupg lsb-release p7zip-full
Дополнительно были установлены офисный пакет, графический редактор и диагностические утилиты.
sudo apt install -y libreoffice gimp inkscape hardinfo cpu-x
2.5 Установка виртуального принтера
Установлен виртуальный принтер CUPS-PDF, позволяющий сохранять документы в формате PDF. Служба печати была запущена и добавлена в автозагрузку.
sudo apt install -y cups cups-pdf
sudo systemctl enable cups
sudo systemctl start cups
lpstat -p
3. Настройка удаленного доступа
3.1 Установка и настройка SSH
Установлен и настроен SSH-сервер. Служба SSH запущена и добавлена в автозагрузку, что позволяет выполнять удаленное подключение к системе.
sudo apt install -y openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
sudo systemctl status ssh
hostname -I
3.2 Настройка удаленного доступа к рабочему столу
Для подключения к рабочей станции по графическому протоколу была установлена служба xrdp. После установки служба была запущена, добавлена в автозагрузку и разрешена в межсетевом экране.
sudo apt install -y xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
sudo systemctl status xrdp
sudo ufw allow 3389/tcp
4. Применение средств защиты компьютерных систем
4.1 Настройка межсетевого экрана
Настроен межсетевой экран UFW. Разрешены подключения по SSH и удаленному рабочему столу, остальные входящие соединения ограничены.
sudo apt install -y ufw
sudo ufw allow ssh
sudo ufw allow 3389/tcp
sudo ufw enable
sudo ufw status
4.2 Резервное копирование установленной операционной системы
Для резервного копирования системы установлена программа Timeshift. С ее помощью была создана точка восстановления, которую можно использовать для возврата системы к рабочему состоянию.
sudo apt install -y timeshift
sudo timeshift-gtk
В окне Timeshift выбран режим RSYNC, выбран диск для хранения снимков и создана первая точка восстановления системы.
4.3 Создание установочного образа системы
Для создания установочного образа системы подготовлен загрузочный носитель Clonezilla. С помощью Clonezilla можно сохранить образ установленной системы и восстановить его на другой рабочей станции.
sudo apt install -y clonezilla
sudo clonezilla
В мастере Clonezilla выбран режим device-image, указан каталог для сохранения образа и выполнено создание резервного образа установленной операционной системы.
4.4 Резервное копирование рабочей директории
Для дополнительного копирования рабочей директории проекта использована утилита rsync. Она позволяет быстро создавать резервную копию файлов разработки.
mkdir -p ~/backup
sudo mkdir -p /opt/cross_platform_apps
rsync -av /opt/cross_platform_apps ~/backup/
4.5 Создание групп пользователей и настройка прав доступа
Созданы группы пользователей developers, builders и security. Для каждой группы определены права доступа к рабочим каталогам в соответствии со служебными обязанностями.
sudo groupadd developers
sudo groupadd builders
sudo groupadd security
sudo useradd -m -G developers devuser
sudo useradd -m -G builders builduser
sudo useradd -m -G security secuser
sudo passwd devuser
sudo passwd builduser
sudo passwd secuser
Создан рабочий каталог проекта. Право на чтение, запись и выполнение получили только пользователи группы developers.
sudo mkdir -p /opt/cross_platform_apps
sudo chown root:developers /opt/cross_platform_apps
sudo chmod 770 /opt/cross_platform_apps
ls -ld /opt/cross_platform_apps
groups devuser
groups builduser
groups secuser
4.6 Настройка аутентификации и авторизации
Выполнена базовая настройка аутентификации: запрещен вход по SSH для пользователя root, включена авторизация по паролю для обычных пользователей и проверены права групп.
sudo nano /etc/ssh/sshd_config
В файле sshd_config были установлены параметры:
PermitRootLogin no
PasswordAuthentication yes
После изменения параметров служба SSH была перезапущена.
sudo systemctl restart ssh
sudo systemctl status ssh
4.7 Настройка журналов мониторинга и аудита
Установлена служба аудита auditd. Она позволяет отслеживать входы пользователей, изменение системных файлов и действия, связанные с безопасностью.
sudo apt install -y auditd audispd-plugins
sudo systemctl enable auditd
sudo systemctl start auditd
sudo systemctl status auditd
Для просмотра системных событий и событий авторизации использованы команды journalctl и ausearch.
journalctl -xe
sudo ausearch -m USER_LOGIN
sudo aureport
5. Установка программного обеспечения для разработки
5.1 Установка Visual Studio Code
Установлен редактор кода Visual Studio Code. Он используется как основная среда для разработки настольных приложений на JavaScript и TypeScript.
sudo snap install code --classic
code --version
5.2 Установка расширений Visual Studio Code
Для удобной разработки были установлены расширения для JavaScript, TypeScript, ESLint, Prettier, Git и работы с Electron-проектами.
code --install-extension dbaeumer.vscode-eslint
code --install-extension esbenp.prettier-vscode
code --install-extension ms-vscode.vscode-typescript-next
code --install-extension eamodio.gitlens
code --install-extension usernamehw.errorlens
В интерфейсе Visual Studio Code была выбрана светлая тема, включено автосохранение, форматирование при сохранении и отображение терминала внутри среды разработки.
5.3 Установка Node.js и npm
Установлена среда выполнения Node.js LTS и пакетный менеджер npm. Они необходимы для запуска JavaScript-инструментов и установки зависимостей Electron-проекта.
sudo apt install -y curl ca-certificates
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt install -y nodejs
node -v
npm -v
5.4 Установка TypeScript, Electron и Electron Builder
Установлены TypeScript, Electron и Electron Builder. TypeScript используется для разработки с типизацией, Electron — для создания настольного приложения, Electron Builder — для сборки исполняемых файлов и установочных пакетов.
sudo npm install -g typescript electron electron-builder
tsc -v
electron -v
electron-builder --version
5.5 Установка программы для создания установочных пакетов
Для создания Windows-инсталляторов дополнительно установлен NSIS. В связке с Electron Builder он позволяет формировать установочные пакеты для настольных приложений.
sudo apt install -y nsis wine
makensis -VERSION
5.6 Создание тестового Electron-проекта
Создан тестовый проект desktop-test. В проекте выполнена инициализация npm, установлены зависимости и подготовлена структура приложения.
mkdir -p ~/desktop-test
cd ~/desktop-test
npm init -y
npm install --save-dev electron typescript electron-builder
npx tsc --init
В проекте созданы файлы main.js, index.html и package.json. Файл main.js отвечает за запуск окна приложения, index.html содержит интерфейс, а package.json хранит команды запуска и сборки.
5.7 Настройка package.json
В файл package.json были добавлены команды запуска приложения и сборки установочных пакетов.
"scripts": {
"start": "electron .",
"build:linux": "electron-builder --linux AppImage deb",
"build:win": "electron-builder --win nsis"
}
Также добавлен раздел build, в котором указаны название приложения, идентификатор, каталог результата сборки и типы установочных пакетов.
"build": {
"appId": "com.company.desktoptest",
"productName": "Desktop Test",
"directories": {
"output": "dist"
},
"linux": {
"target": ["AppImage", "deb"]
},
"win": {
"target": "nsis"
}
}
5.8 Запуск и проверка приложения
После настройки проекта был выполнен запуск тестового приложения. Открылось окно Electron, что подтверждает корректную установку среды выполнения и зависимостей проекта.
cd ~/desktop-test
npm start
5.9 Сборка исполняемого файла и установочного пакета
С помощью Electron Builder выполнена сборка приложения для Linux. В результате в каталоге dist были сформированы файлы AppImage и deb-пакет.
npm run build:linux
ls -la dist
Для сборки Windows-инсталлятора используется команда build:win. При наличии необходимых зависимостей Electron Builder формирует установочный пакет NSIS.
npm run build:win
5.10 Настройка обмена данными с другими системами
Для обмена данными с удаленным репозиторием был настроен Git. Это позволяет передавать исходный код проекта между рабочими станциями и хранить историю изменений.
git config --global user.name "Developer"
git config --global user.email "developer@example.com"
cd ~/desktop-test
git init
git add .
git commit -m "Initial Electron project"
Также проверен адрес npm-реестра, через который выполняется загрузка пакетов и обновление зависимостей.
npm config get registry
npm config set registry https://registry.npmjs.org/
6. Установка программного обеспечения для защиты от фишинга и хранения учетных данных
6.1 Установка Bitwarden
Установлен менеджер паролей Bitwarden. Он используется для безопасного хранения учетных данных, генерации надежных паролей и защиты от фишинга за счет автозаполнения только на корректных доменах сайтов.
sudo snap install bitwarden
После установки был создан защищенный сейф, настроен мастер-пароль, включена блокировка приложения после простоя и добавлены тестовые учетные данные для рабочей системы.
6.2 Настройка браузерной защиты
В браузере включена встроенная защита от опасных сайтов и фишинга. Дополнительно установлено расширение Bitwarden, чтобы пароли не вводились вручную на подозрительных страницах.
При работе с учетными данными проверяется адрес сайта, используется генератор сложных паролей и не допускается повторное использование одного пароля для разных сервисов.
7. Настройка совместимости программного обеспечения
7.1 Проверка версий установленного программного обеспечения
Проверена совместимость установленного программного обеспечения с операционной системой Linux. Все программы запускаются корректно, интерфейс отображается без ошибок.
code --version
node -v
npm -v
tsc -v
electron -v
electron-builder --version
makensis -VERSION
7.2 Проверка отображения интерфейса приложения
В тестовом приложении Electron проверено отображение меню, кнопок, текста и окна при стандартном и уменьшенном разрешении экрана. Для предотвращения ошибок отображения в настройках окна были указаны минимальные размеры.
const { app, BrowserWindow } = require("electron");
function createWindow() {
const win = new BrowserWindow({
width: 900,
height: 600,
minWidth: 700,
minHeight: 500,
autoHideMenuBar: false
});
win.loadFile("index.html");
}
app.whenReady().then(createWindow);
7.3 Настройка корректного масштабирования
Для корректного отображения интерфейса при высоком разрешении экрана были заданы параметры масштабирования Electron и проверены системные настройки масштаба рабочего стола.
app.commandLine.appendSwitch("high-dpi-support", "1");
app.commandLine.appendSwitch("force-device-scale-factor", "1");
В системе Linux проверены параметры масштабирования интерфейса.
gsettings get org.gnome.desktop.interface scaling-factor
gsettings get org.gnome.desktop.interface text-scaling-factor
7.4 Решение проблем с цветовой палитрой и отрисовкой
Для корректного отображения цветов и элементов интерфейса был задан профиль sRGB. При необходимости аппаратное ускорение может быть отключено, чтобы устранить ошибки отрисовки на старых видеодрайверах.
app.commandLine.appendSwitch("force-color-profile", "srgb");
app.disableHardwareAcceleration();
8. Документация пользователя
Наименование программного средства
Electron Builder — инструмент автоматизации сборки и создания установочных пакетов для настольных приложений Electron.
Краткое описание
Electron Builder предназначен для подготовки настольных приложений к распространению. С его помощью можно собрать приложение в исполняемый файл и сформировать установочные пакеты для Linux, Windows и macOS. Инструмент поддерживает формирование AppImage, deb-пакетов, NSIS-инсталляторов и других форматов.
Запуск программы
Electron Builder запускается из терминала в каталоге проекта. Для просмотра справки используется команда:
electron-builder --help
Для сборки приложения под Linux используется команда:
electron-builder --linux AppImage deb
Для сборки Windows-инсталлятора используется команда:
electron-builder --win nsis
Плановое завершение работы
После завершения сборки Electron Builder автоматически завершает работу и выводит результат в терминал. Если процесс необходимо остановить вручную, используется сочетание клавиш Ctrl+C.
9. Руководство пользователя Electron Builder
9.1 Назначение программы
Electron Builder используется для автоматизации сборки, упаковки и подготовки настольных приложений Electron к передаче пользователям. Инструмент позволяет создавать исполняемые файлы, установочные пакеты и каталоги с готовым приложением.
9.2 Требования перед началом работы
Перед использованием Electron Builder должны быть установлены Node.js, npm, Electron и зависимости проекта. Пользователь должен находиться в каталоге проекта, где расположен файл package.json.
node -v
npm -v
ls package.json
9.3 Подготовка проекта
Для подготовки проекта необходимо установить зависимости и убедиться, что приложение запускается без ошибок.
npm install
npm start
9.4 Настройка параметров сборки
Параметры сборки указываются в файле package.json в разделе build. В этом разделе задаются appId, productName, каталог вывода и целевые форматы пакетов.
"build": {
"appId": "com.company.desktoptest",
"productName": "Desktop Test",
"directories": { "output": "dist" },
"linux": { "target": ["AppImage", "deb"] },
"win": { "target": "nsis" }
}
9.5 Создание Linux-пакета
Для создания пакета под Linux необходимо выполнить команду build:linux. После завершения сборки результат будет помещен в каталог dist.
npm run build:linux
ls -la dist
9.6 Создание Windows-инсталлятора
Для создания Windows-инсталлятора используется цель nsis. Она формирует установочный файл, который можно запустить на Windows-рабочей станции.
npm run build:win
9.7 Просмотр результата сборки
Результат сборки находится в каталоге dist. В нем размещаются установочные пакеты, исполняемые файлы, служебные файлы сборки и журналы выполнения.
cd dist
ls -la
9.8 Основные функции Electron Builder
Electron Builder позволяет выполнять следующие действия: создавать установочные пакеты, собирать AppImage и deb-пакеты, формировать NSIS-инсталляторы, задавать имя приложения, настраивать иконку, указывать каталог результата сборки, подключать подпись приложения, формировать portable-версии и автоматизировать выпуск новых версий.
9.9 Основные приемы работы
Основной прием работы с Electron Builder состоит в настройке package.json, запуске команды сборки и проверке сформированного каталога dist. При ошибках необходимо прочитать вывод терминала, проверить зависимости проекта и повторить сборку.
9.10 Возможные ошибки
Ошибка Причина Решение
electron-builder не найден Пакет не установлен глобально или локально Установить пакет командой sudo npm install -g electron-builder или npm install --save-dev electron-builder
Сборка завершилась ошибкой Ошибка в package.json или отсутствуют зависимости Проверить синтаксис package.json и выполнить npm install
Приложение не запускается Ошибка в main.js или неверный путь к index.html Проверить файл main.js и выполнить npm start
Не создается Windows-инсталлятор Не установлен NSIS или Wine Установить nsis и wine, затем повторить npm run build:win
Файлы не появились в dist Неверно указан output или сборка не завершилась Проверить раздел directories и вывод терминала
Некорректное отображение интерфейса Проблема с масштабированием или видеодрайвером Проверить настройки DPI и при необходимости отключить аппаратное ускорение
10. Вывод
В ходе лабораторной работы была выполнена установка и первичная настройка операционной системы Linux, базового программного обеспечения и прикладных средств для разработки кросс-платформенных настольных приложений. Были установлены Visual Studio Code, Node.js, npm, TypeScript, Electron, Electron Builder, NSIS, Git, LibreOffice, GIMP, Inkscape, CUPS-PDF, Bitwarden, Timeshift, rsync и auditd. Также были настроены SSH, удаленный доступ, межсетевой экран, пользователи, группы, права доступа, резервное копирование, точки восстановления и журналы мониторинга.
Дополнительно был создан тестовый Electron-проект, выполнена настройка package.json, проверен запуск приложения и подготовлена сборка установочных пакетов. В результате была создана рабочая среда для разработки, сборки и распространения кросс-платформенных настольных приложений, а также подготовлена документация пользователя и руководство по использованию Electron Builder.