Добавить в корзинуПозвонить
Найти в Дзене
LITVINOV-UPGRADE-LINUX

VSCode — Установка на Astra Linux 1.7.3

Visual Studio Code (VS Code) — это популярный, бесплатный и кроссплатформенный редактор кода от Microsoft. Он поддерживает множество языков программирования и обладает расширяемой архитектурой благодаря системе плагинов. Давно уже стал стандартом. Рассмотрим несколько вариантов его установки на Astra Linux 1.7.3 Скачиваем дистрибутив (https://wiki.astralinux.ru/pages/viewpage.action?pageId=41192241) sudo apt install ~/Загрузки/code_*.deb Для Astra Linux 1.7.3 этот способ не рабочий: Следующие пакеты имеют неудовлетворённые зависимости:
code : Зависит: libxkbfile1 (>= 1:1.1.0) но 1:1.0.9-2 должен быть установлен Рассмотрим варианты решения: wget http://ftp.us.debian.org/debian/pool/main/libx/libxkbfile/libxkbfile1_1.1.0-1_amd64.deb и дальше его устанавливаем вариант помог выяснить реальное название пакета НО! я стараюсь не ставить из любых внешних репозиториев пакеты, кроме репозиториев astra linux. kate /etc/apt/sources.list deb [trusted=yes] https://mirror.yandex.ru/debian/ buster m
Оглавление

Описание ПО.

Visual Studio Code (VS Code) — это популярный, бесплатный и кроссплатформенный редактор кода от Microsoft. Он поддерживает множество языков программирования и обладает расширяемой архитектурой благодаря системе плагинов. Давно уже стал стандартом.

Рассмотрим несколько вариантов его установки на Astra Linux 1.7.3

0) Вариант из документации

Скачиваем дистрибутив (https://wiki.astralinux.ru/pages/viewpage.action?pageId=41192241)

sudo apt install ~/Загрузки/code_*.deb

Для Astra Linux 1.7.3 этот способ не рабочий:

Следующие пакеты имеют неудовлетворённые зависимости:
code : Зависит: libxkbfile1 (>= 1:1.1.0) но 1:1.0.9-2 должен быть установлен

Рассмотрим варианты решения:

1) Скачать с репозитория debian

wget http://ftp.us.debian.org/debian/pool/main/libx/libxkbfile/libxkbfile1_1.1.0-1_amd64.deb

и дальше его устанавливаем

вариант помог выяснить реальное название пакета

НО! я стараюсь не ставить из любых внешних репозиториев пакеты, кроме репозиториев astra linux.

2) Использовать менеджер пакетов snap

kate /etc/apt/sources.list
deb [trusted=yes] https://mirror.yandex.ru/debian/ buster main contrib non-free
sudo apt update
sudo apt install snapd

== Устанавливаем code

sudo snap install --classic code


У этого способа есть свои преимущества, но все равно нужно подключать внешние репозитории.


3) Собрать нужную зависимость из исходников:

Будем действовать в 2 этапа:
- Сначала соберем библиотеку
- Затем сделаем фиктивный deb пакет

3.1) Сборка из исходников (https://www.x.org/releases/individual/lib/)


#!/bin/bash
set -e # Выход при ошибке

# Параметры
# Версия 2019 года.
# LIBXKBFILE_VERSION="1.1.0"
# Самая свежая версия 2024
# LIBXKBFILE_VERSION="1.1.3"
LIBXKBFILE_VERSION="1.1.1"
_libxkbfile=libxkbfile-${LIBXKBFILE_VERSION}
SRC_DIR="$HOME/build/libxkbfile"
INSTALL_DIR="${HOME}/opt/${_libxkbfile}"

# Установим зависимости
sudo apt update
sudo apt install -y build-essential autoconf automake libtool pkg-config x11proto-dev x11-utils x11-xkb-utils xkb-data

# Создаем рабочую папку
mkdir -p "$SRC_DIR" && cd "$SRC_DIR"

# Скачиваем исходники
wget --no-check-certificate "https://www.x.org/releases/individual/lib/${_libxkbfile}.tar.gz"

# Распаковываем архив
tar -xzf "${_libxkbfile}.tar.gz"
cd "${_libxkbfile}"

mkdir -p build && cd build
# Конфигурируем
../configure --prefix="$INSTALL_DIR"
# Сборка и установка
make -j$(nproc)
sudo make install

echo "\${HOME}/opt/${_libxkbfile}/lib" | sudo tee /etc/ld.so.conf.d/${_libxkbfile}.conf;
sudo ldconfig;

echo "libxkbfile-$LIBXKBFILE_VERSION успешно собран и установлен в $INSTALL_DIR"


3.2) Сборка фиктивного пакета.

equivs — это утилита в Debian/Ubuntu, которая позволяет создавать фиктивные (dummy) пакеты для обхода зависимостей без реальной установки нужных библиотек или программ.

Она полезна, когда:

  • У вас уже установлена нужная библиотека вручную (например, собрана из исходников), но пакетный менеджер (apt) не видит её.
  • Вы хотите заменить зависимость пакета, не устанавливая официальную версию из репозитория.
  • Нужно создать локальные кастомные пакеты.

Установка пакета:

sudo apt install equivs

Создание файл фиктивный control

equivs-control libxkbfile1

заполняю файл:


### Commented entries have reasonable defaults.
### Uncomment to edit them.
# Source: <source package name; defaults to package name>
Section: libs
Package: libxkbfile1
Version: 1:1.1.1-1
Maintainer: local
Architecture: amd64
Description: Fake package to satisfy dependencies


Сборка пакета, правильный номер версии важен

equivs-build libxkbfile1


Полученный пакет устанавливаю в систему.

sudo dpkg -i libxkbfile1_1.1.1-1_amd64.deb

Проверка:
$ apt policy libxkbfile1
libxkbfile1:
Установлен: 1:1.1.1-1
Кандидат: 1:1.1.1-1
Таблица версий:
*** 1:1.1.1-1 100
100 /var/lib/dpkg/status
1:1.0.9-2+b11 500
500 https://mirror.yandex.ru/debian buster/main amd64 Packages
1:1.0.9-2+b1 900
900 https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-update 1.7_x86-64/main amd64 Packages
900 https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-base 1.7_x86-64/main amd64 Packages
1:1.0.9-2 900
900 https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-main 1.7_x86-64/main amd64 Packages

Установка VSCode скаченной с сайт.
$
sudo dpkg -i code_1.96.4-1736991114_amd64.deb

Итоги:

В статье рассмотрели три способа установки VSCode, в условиях возможных проблем с внешними репозиториям сборка из исходников является лучшим решением.