Установка программ в Linux

Оглавление
22 декабря 2021 г.

Заметка по установке программного обеспечения в дистрибутивах Linux, разработанных на базе Debian (пакеты .deb). О том какие особенности есть в этом вопросе в мире Linux, что и как устроено. Перечень операций, которые я делаю сразу после установки дистрибутива (групповая установка программ). Обо всём этом читайте в статье.

На сайте имеется каталог программного обеспечения для ОС Linux. Большая часть ПО, размещённого там - кросс-платформенное. Работает как на Windows так и на Linux.

Подготовка к установке программ

Сразу после установки операционной системы нужно обновить её. Для начала выполняем в терминале

sudo apt-get update

эта команда обновит информацию о пакетах. Далее обновляем пакеты, для которых в репозиториях имеются обновления:

sudo apt-get upgrade

После обновления системы нужно добавить необходимые сторонние ppa-репозитории, т.к. не все необходимые программы доступны в репозитории дистрибутива. Файлы установки программ также можно скачать с сайтов разработчиков. На сайтах разработчиков зачастую доступны более новые версии софта. 

AppImage, FlatPack, Snap

Начну я, пожалуй, с наиболее современных и набирающих популярность способов поставки ПО. От классических способов они отличаются тем, что программа поставляется комплектом со всеми необходимыми библиотеками в сборе. Что и как у вас установлено в системе особой роли тут не играет. Программа является портативной (аналог PortableApps для Windows).

  • Плюсы:
    — Не нужно учитывать зависимости (о них ниже).
    — Не нужно устанавливать. Запускается скаченный файл и сразу работает.
    — Удалять системно и чистить тоже ничего нигде не нужно. Удаляем файл AppImage и всё.
  • Минусы:
    — Файл сборки может весить 1,5Gb, в то время, как пакетный файл обычной установки (DEB, RPM) может весить 25Mb.
    — Нет полноценной интеграции в систему как Desktop-приложение. Есть варианты как это исправить, но придётся немного повозиться. AppImage Launcher – один из вариантов решения вопроса.
    — Возможны проблемы с ассоциацией расширений файлов. Вытекает из предыдущего пункта и лечится только вручную, поскольку стороннее ПО, призванное решить проблемы интеграции ПО в систему, не решает её на 100%.
    — Если файл не запустится (например, криво собран), то без вариантов.

Сам я использую AppImage и ниже напишу немного про работу с ним.

Использование AppImage

Данные сборки я использую для запуска OrcaSlicer, Inkscape, FreeCAD. Установочные пакеты собираются самими разработчиками и доступны для скачивания на их сайтах. В некоторых случаях разработчик выбирает данные виды поставок ПО как безальтернативные и в репозиториях систем они представлены устаревшими версиями. Либо обновления в виде классических deb и rpm-пакетов выпускаются значительно позже.

AppImageFlatPack

Но бывают случаи, когда установщик ПО на сайте разработчика не представлен, а размещается в отдельном репозитории. В этом случае надо добавить такой репозиторий в систему и программа обновления будет смотреть доступные новые пакеты и в них.

Если файл AppImage не запускается, можно узнать причину стандартным для Linux способом – запустив файл через консоль. Если проблема на стороне системы, а не самого файла, то препятствия можно устранить и продолжить использовать AppImage программы.

У меня был подобный случай с файлом для FreeCAD. После очередного обновления системы он перестал запускаться. Я временно использовал программу под Windows, а через некоторое время после пары обновлений системы файл снова заработал. Пришлось просто подождать. Иногда это работает и так.

Но, как я уточнил выше, если проблема в файле, то починить это не получится никак. Только разработчику писать. Однако, с таким я ещё не сталкивался.

Сторонние PPA-репозитории

Репозитории есть не только у разработчиков дистрибутивов. У некоторых крупных разработчиков программ они тоже есть. Чаще всего в них размещают собственный софт и смежные зависимости. А также ночные сборки и бета-релизы. Такой есть, например, у Mozilla. Называются они PPA (Personal Package Archive).

У Mozilla есть свой личный репозиторий Firefox. Я его добавил в список источников приложений,  дал ему приоритет и обновляюсь теперь на самые свежие версии браузера сразу после их выхода, не дожидаясь, пока они станут доступны в репозитории дистрибутива (случится это может с заметной задержкой).

У некоторых разработчиков нет возможности попасть в репозиторий дистрибутива по политическим и санкционным мотивам. Например, мессенджер MAX один из таких. В этом случае нужно предоставлять пользователю свой сторонний репозиторий, из которого программа будет обновляться. По установке MAX у меня написана отдельная статья. Есть там мелкие, но решаемые проблемы.

PPA-репозиторий программы именно что персональный. Его может создать любой пользователь сети интернет, у которого есть необходимые технические знания по размещению файлов, а также технические и финансовые возможности такие файлы разместить и обеспечивать их длительную круглосуточную доступность

Злоумышленник тоже может разместить файл таким образом. Так что лучше уточнить перед использованием – чей это репозиторий и какова репутация его владельца. Или хотя бы проверял ли кто ранее размещённые в репозитории файлы на всякое-разное.

За актуальностью PPA-репозиториев надо следить самостоятельно. Разработчики программ далеко не всегда являются их владельцами и/или следят за ними. Поэтому версии программ из этих источников могут устаревать или иметь проблемы. а также сам репозиторий может потерять доступность.

Хорошей иллюстрацией может служить PPA-репозиторий программы AppImage Launcher, информацию по установке которого можно найти в сети. Причём в статьях и советах отмечается, что репозиторий "Stable Official Release". Но если быть повнимательнее, то можно обнаружить следующее:

deprecated ppadeprecated ppadeprecated ppadeprecated ppa

Т.е. репозиторий не обновлялся несколько лет ещё до "закрытия" (правки с отметкой DEPRECATED). И о проблемах с установкой писали пользователи. Поэтому надо быть аккуратнее. Устаревшими PPA-репозиториями пользоваться можно, но лучше найти актуальные варианты установки из других источников. Старая версия из репозитория устанавливается и как-то работает. Но не обновляется.

После добавления репозитория всегда необходимо выполнять команду 

sudo apt-get update

Это обновит данные об источниках приложений. После этого уже можно устанавливать программу через стандартную команду 

sudo apt-get install program

PPA-репозитории, которыми я пользуюсь

Я использую сторонние репозитории для следующих программ:

  • OBS Studio
  • Xneur
  • Brightness controller
  • Grub customizer
  • YandexDisk Tools
  • Q-Cad

Ссылки на ppa-репозитории есть на сайтах разработчиков в разделе с информацией по установке.

sudo add-apt-repository ppa:obsproject/obs-studio
sudo add-apt-repository ppa:apandada1/brightness-controller
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo add-apt-repository ppa:slytomcat/ppa
sudo add-apt-repository ppa:alex-p/qcad

После добавления ppa-репозиториев информацию о пакетах надо обновить:

sudo apt-get update

И после этого одной строкой устанавливаем весь софт, который нам нужен:

sudo apt-get install onboard qcad hardinfo key-mon ffmpeg obs-studio krita krita-l10n flameshot k3b steam-installer conky-manager unrar virtualbox gparted grub-customizer yd-tools brightness-controller filezilla thunderbird 

Установка DEB-пакетов с сайтов разработчиков

Помимо PPA, сторонний софт, не доступный в системных репозиториях, можно ставить в виде deb-пакетов. Таким способом я устанавливаю следующие программы:

Если какие-то пакеты не ставятся и в консоли сообщается о неудовлетворённых зависимостях (если ставите через G-Debi)

установка vscode

или видите "зафиксированы сломанные пакеты" (если ставите через консоль)

установка vscode

то можно попробовать обновить пакеты с ключами

sudo apt update --fix-missing

Если это не помогло разрешить зависимости, то вопрос надо решать вручную.

Русификация отдельных программ

Для русификации графического редактора Crita нужно установить следующие пакеты:

sudo apt-get install calligra-l10n-ru kde-l10n-ru

Руссификация Libre Office выполняется установкой следующих пакетов:

sudo apt-get install libreoffice-l10n-ru libreoffice-help-ru mythes-ru hunspell-ru

Очистка системы

Для очистки системы используются следующие команды:

Очистка диска от скаченных во время установки deb-пакетов

sudo apt-get autoclean

Поправить зависимости в пакете можно командой

sudo apt-get check

Очистить неиспользуемые пакеты, зависимости и файлы можно командой

sudo apt autoremove

Поиск потерянных зависимостей

Зависимостями в Linux называют сторонние библиотеки и программы, требуемые для штатной работы устанавливаемой программы. Когда при установке программы часть таких зависимостей отсутствует (по различным причинам), их называют неудовлетворённые зависимости, потерянные зависимости или неразрешённые зависимости.

Удовлетворяются, находятся и решаются они путём поиска, загрузки с последующей установкой.

В зависимости от дистрибутива, некоторые библиотеки можно найти на сайте его комьюнити. При установке мессенджера MAX на Linux Mint в терминале в процессе установки были отмечены и установлены две зависимости, требуемые для работы приложения.

Но после установки программа не запустилась. Как всегда в таких случаях программу надо запускать через терминал. Что и было сделано. Недостающая библиотека обозначилась – libxcb-cursor0.

установка MAX

Спросил у Яндекса, нашёл библиотеку на сайте Linux Mint. Поскольку сайт заточен под дистрибутив для максимально быстрой и комфортной помощи пользователям, установилась зависимость прямо со страницы кликом по кнопке Install.

установка библиотек

И проблема решилась. Бывают случаи, когда недостающую библиотеку можно найти прямо в менеджере пакетов Synaptic. Установка того же MAX на другом дистрибутиве выявила другую зависимость – libOpenGL.so.0.

установка MAX

Маленький, но важный нюанс – искомая библиотека может быть частью другой, пакетной. Либо просто в репозитории называться чуть по-другому. Этот момент лучше загуглить перед поиском.

Искомая библиотека libOpenGL.so.0 в Synaptic`е присутствовала под названием – libopengl0.

установка MAX

Я разобрал случаи, когда потерянные зависимости так или иначе нашлись. Но что делать, если поиск был неудачным и нужной библиотеки либо совсем не нашлось, либо она везде уже обновилась и доступна не той версии, которая совместима с устанавливаемой программой? 

Альтернативные пути разрешения зависимостей на Linux

Примеры я приведу из другой статьи про ОС Slitaz Linux. Slitaz весьма ограничен и на популярных дистрибутивах с таким сталкиваешься редко. Но принцип поиска зависимостей на всех линуксах схож. И пригодиться эта информация может в любой ОС семейства Linux.

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

Вроде система пишет, что пакет проверяется, что зависимости выявлены, что часть зависимостей отсутствует и требуется их установка. Что вот они все установлены и теперь можно смело ставить пакет. Но в итоге видим банальное No such file or directiory.

зависимости пакетов в Linuxзависимости пакетов в Linux

Тут можно пойти тремя путями:

  1. Скачать требуемую библиотеку и установить её (примеры выше).
  2. Проверить – есть ли эта библиотека в других пакетах, установленных или доступных.
  3. Найти ближайшего по версии родственника и сделать ссылку (ярлык).

Первый вариант хорош, но не так-то просто найти именно номерную библиотеку в сети. У библиотек есть версии и зачастую разные версии не взаимозаменяемы при старте программы. По факту часто заменяемы, но программа не будет проверять вероятность. Она будет проверять номер.

lib-1.7.0.so.0
lib-1.7.0.so.1
lib-1.7.0.so.2
...

lib-1.7.0.so.N

Найти конкретный номер далеко не всегда удаётся. Поэтому проще перейти сразу к варианту №2 – поискать в менеджере. Справа сверху там 2 кнопки: Поиск и Файлы. Поиск ищет пакеты, Файлы ищет содержимое в пакетах.

Т.е. можно поискать через Файлы нужную библиотеку и если результат будет положительным, установить найденный пакет. Я так и сделал. Эту ошибку мне удалось устранить.

Затем надо перезапустить в консоли программу и с некоторой долей вероятности (50/50) она затребует следующую зависимость, как на скриншоте ниже.

зависимости пакетов в Linuxзависимости пакетов в Linux

Вторую зависимость не удалось решить также, как первую. Требовалась 6-ая версия, в наличии есть 7-ая, но она не принимается программой. В этом случае нужно пробовать третий вариант.

Следует посмотреть по данным поиска, где располагается библиотека. В данном случае это каталог /usr/lib/ . Делаем копию симлинка (ярлыка) с 7-ой версии библиотеки libpvpx.so.7 и называем её libpvpx.so.6.

зависимости пакетов в linux

Пробуем перезапуск и на этот раз новых зависимостей не появляется.

зависимости пакетов в Linux

Вопрос решён.

Похожие статьи
Каталог программ для Linux

Долгое время на сайте существовал общий каталог, около половины программ которого были кросс-платформенными. Со временем я старался прийти к единому набору софта, который будет работать на всех OC, которыми я пользуюсь. Но далеко не для каждого ПО можно отыскать равновесную альтернативу. Поэтому, чтобы не делать каких-то пометок в каталоге, я решил вести два отдельных – для Windows и для Linux.

21 декабря 2021 г.
Windows и Linux

Пару лет назад на одном форуме я, участвуя в одном жарком споре на тему чьё болото лучше, опубликовал пост, который и раскроет тему данной статьи. Привожу его ниже:


Маленькое отступление по поводу Windows и Linux. Тут понимаете в чём дело: Windows - это совокупность ядра системы, а также служебных программ и скриптов, выполняющих определённые операции и задачи. На этой ОС у вас нет права изменять или удалять скрипты и системное ПО...

19 июля 2011 г.
Дистрибутивы Linux

Linux – это не операционная система, а всего лишь ее ядро. Все, что вы привыкли видеть и понимать как операционку (кнопки, окна и панели) - на самом деле ею не является. То, что вы видите - это GUI (Graphical user interface), то есть графический интерфейс пользователя, именуемый также графической средой или графической оболочкой. GUI – это программа, призванная упростить жизнь пользователю, чтобы он не мучился с консолью. На самом деле любая ОС выглядит как консоль, то есть как старый добрый DOS.

Виды операционных систем, построенных на ядре Linux сильно разнятся как по обеспечению рабочим окружением, так и по набору прикладных программ, доступных в ОС. Это отчасти потому, что часть программ поддерживают лишь некоторые GUI или зависят от других программ, которых нет в данной системе. Беглый обзор различий и особенностей пёстрого мира Linux – в этой статье.

16 июля 2011 г.
Сайт использует сookie

Яндекс.Метрика