Если openSUSE работает на виртуальной машине подключаемся, запускаем
| Шаг | Действие | Основная команда |
|---|---|---|
| 1 | Установка Java 17 | curl -4 -fL --connect-timeout 20 --retry 3 "https://cdn.azul.com/zulu/bin/zulu17.66.19-ca-jdk17.0.19-linux_x64.tar.gz" -o java17.tar.gz |
| 2 | Установка дополнительных утилит (mc, nano) | sudo zypper install mc nano |
| 3 | Подготовка каталога и файлов приложения | sudo mkdir -p /opt/tab && sudo cp ... |
| 4 | Создание systemd unit-файла | sudo nano /etc/systemd/system/tab.service |
| 5 | Активация и запуск сервиса | sudo systemctl enable --now tab.service |
| 6 | Создание JSON-конфигурации (метео/АПВГК) | echo '{"meteo":true}' > /opt/tab/meteo.json |
| 7 | Диагностика по логам | sudo journalctl -u tab.service -f |
| 8 | Обновление версии IMTF | sudo ln -sfn /opt/tab/IMTF-новый.jar /opt/tab/IMTF && sudo systemctl restart tab.service |
tab.service (IMTF) на постуsudo zypper refresh
sudo zypper install ./jdk-17_linux-x64_bin.rpm
java -version
Команды из старой версии статьи:
sudo zypper refresh
sudo zypper install java-17-openjdk java-17-openjdk-headless
java -version
sudo zypper install java-17-openjdk
Необходимо убедитесь что путь к java в openSUSE обычно /usr/lib64/jvm/java-17-openjdk/bin/java , если отличается поменять путь в systemd unit-файле.
Для удобной работы установим редактор файловый менеджер Midnight Commander:
sudo zypper install mc
Команды из старой версии статьи:
sudo zypper install nano mc
Проверка:
mc --version
nano --version
mc --version
Создаём каталог:
sudo mkdir -p /opt/tab
Скопируйте туда:
IMTF-4.1.13.3.jar)testRecord.xmlsudo cp /home/vocord/IMTF-4.1.13.3.jar /opt/tab/
sudo cp /home/vocord/testRecord.xml /opt/tab/
Создаём символическую ссылку:
sudo ln -sfn /opt/tab/IMTF-4.1.13.3.jar /opt/tab/IMTF
Проверяем:
ls -l /opt/tab/IMTF*
Открываем новый unit-файл:
sudo nano /etc/systemd/system/tab.service
Вставляем содержимое:
[Unit]
Description=IMTF Java Application
After=network.target
[Service]
User=root
WorkingDirectory=/opt/tab
ExecStart=/usr/lib64/jvm/java-17-openjdk/bin/java -jar /opt/tab/IMTF
Restart=always
RestartSec=5
StandardOutput=file:/var/log/tab-service.log
StandardError=file:/var/log/tab-service-error.log
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable tab.service
sudo systemctl start tab.service
sudo systemctl status tab.service
После первого запуска в /opt/tab появятся .json файлы.
Для метео-поста:
sudo nano /opt/tab/meteo.json
Содержимое:
{
"meteo": true
}
Для АПВГК-поста:
sudo nano /opt/tab/apvgk.json
Содержимое:
{
"apvgk": true
}
sudo tail -f /var/log/tab-service.log
sudo tail -f /var/log/tab-service-error.log
Если сервис не запускается:
journalctl -u tab.service -n 100 --no-pager
sudo cp /home/vocord/IMTF-4.1.14.0.jar /opt/tab/
sudo ln -sfn /opt/tab/IMTF-4.1.14.0.jar /opt/tab/IMTF
sudo systemctl restart tab.service
curl -4 -fL --connect-timeout 20 --retry 3
"https://cdn.azul.com/zulu/bin/zulu17.66.19-ca-jdk17.0.19-linux_x64.tar.gz"
-o java17.tar.gz
Во время скачивания счётчик должен начать увеличиваться. Размер архива — около 190 МБ.
Проверка:
ls -lh /tmp/java17.tar.gz
2. Распаковываем
sudo mkdir -p /opt/java
sudo tar -xzf /tmp/java17.tar.gz -C /opt/java
Посмотрим имя каталога:
ls -la /opt/java
Должен появиться каталог примерно:
zulu17.66.19-ca-jdk17.0.19-linux_x64
3. Создаём постоянную ссылку
sudo ln -sfn
/opt/java/zulu17.66.19-ca-jdk17.0.19-linux_x64
/opt/java/jdk-17
Проверяем Java напрямую:
/opt/java/jdk-17/bin/java -version
4. Делаем Java 17 системной
sudo tee /etc/profile.d/java17.sh >/dev/null <<'EOF'
export JAVA_HOME=/opt/java/jdk-17
export PATH=PATH
EOF
sudo ln -sfn /opt/java/jdk-17/bin/java /usr/local/bin/java
sudo ln -sfn /opt/java/jdk-17/bin/javac /usr/local/bin/javac
sudo ln -sfn /opt/java/jdk-17/bin/jar /usr/local/bin/jar
Применяем:
source /etc/profile.d/java17.sh
hash -r
Финальная проверка:
java -version
javac -version
echo "$JAVA_HOME"
which java
Ожидаемый результат:
openjdk version "17.0.19"
OpenJDK Runtime Environment Zulu17...
OpenJDK 64-Bit Server VM Zulu17...