Установка программ в Linux
Заметка по установке программного обеспечения в дистрибутивах 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-пакетов выпускаются значительно позже.
Но бывают случаи, когда установщик ПО на сайте разработчика не представлен, а размещается в отдельном репозитории. В этом случае надо добавить такой репозиторий в систему и программа обновления будет смотреть доступные новые пакеты и в них.
Если файл AppImage не запускается, можно узнать причину стандартным для Linux способом – запустив файл через консоль. Если проблема на стороне системы, а не самого файла, то препятствия можно устранить и продолжить использовать AppImage программы.
У меня был подобный случай с файлом для FreeCAD. После очередного обновления системы он перестал запускаться. Я временно использовал программу под Windows, а через некоторое время после пары обновлений системы файл снова заработал. Пришлось просто подождать. Иногда это работает и так.
Но, как я уточнил выше, если проблема в файле, то починить это не получится никак. Только разработчику писать. Однако, с таким я ещё не сталкивался.
Сторонние PPA-репозитории
Репозитории есть не только у разработчиков дистрибутивов. У некоторых крупных разработчиков программ они тоже есть. Чаще всего в них размещают собственный софт и смежные зависимости. А также ночные сборки и бета-релизы. Такой есть, например, у Mozilla. Называются они PPA (Personal Package Archive).
У Mozilla есть свой личный репозиторий Firefox. Я его добавил в список источников приложений, дал ему приоритет и обновляюсь теперь на самые свежие версии браузера сразу после их выхода, не дожидаясь, пока они станут доступны в репозитории дистрибутива (случится это может с заметной задержкой).
У некоторых разработчиков нет возможности попасть в репозиторий дистрибутива по политическим и санкционным мотивам. Например, мессенджер MAX один из таких. В этом случае нужно предоставлять пользователю свой сторонний репозиторий, из которого программа будет обновляться. По установке MAX у меня написана отдельная статья. Есть там мелкие, но решаемые проблемы.
PPA-репозиторий программы именно что персональный. Его может создать любой пользователь сети интернет, у которого есть необходимые технические знания по размещению файлов, а также технические и финансовые возможности такие файлы разместить и обеспечивать их длительную круглосуточную доступность
Злоумышленник тоже может разместить файл таким образом. Так что лучше уточнить перед использованием – чей это репозиторий и какова репутация его владельца. Или хотя бы проверял ли кто ранее размещённые в репозитории файлы на всякое-разное.
За актуальностью PPA-репозиториев надо следить самостоятельно. Разработчики программ далеко не всегда являются их владельцами и/или следят за ними. Поэтому версии программ из этих источников могут устаревать или иметь проблемы. а также сам репозиторий может потерять доступность.
Хорошей иллюстрацией может служить PPA-репозиторий программы AppImage Launcher, информацию по установке которого можно найти в сети. Причём в статьях и советах отмечается, что репозиторий "Stable Official Release". Но если быть повнимательнее, то можно обнаружить следующее:
Т.е. репозиторий не обновлялся несколько лет ещё до "закрытия" (правки с отметкой 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)
или видите "зафиксированы сломанные пакеты" (если ставите через консоль)
то можно попробовать обновить пакеты с ключами
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.
Спросил у Яндекса, нашёл библиотеку на сайте Linux Mint. Поскольку сайт заточен под дистрибутив для максимально быстрой и комфортной помощи пользователям, установилась зависимость прямо со страницы кликом по кнопке Install.
И проблема решилась. Бывают случаи, когда недостающую библиотеку можно найти прямо в менеджере пакетов Synaptic. Установка того же MAX на другом дистрибутиве выявила другую зависимость – libOpenGL.so.0.
Маленький, но важный нюанс – искомая библиотека может быть частью другой, пакетной. Либо просто в репозитории называться чуть по-другому. Этот момент лучше загуглить
перед поиском.
Искомая библиотека libOpenGL.so.0 в Synaptic`е присутствовала под названием – libopengl0.
Я разобрал случаи, когда потерянные зависимости так или иначе нашлись. Но что делать, если поиск был неудачным и нужной библиотеки либо совсем не нашлось, либо она везде уже обновилась и доступна не той версии, которая совместима с устанавливаемой программой?
Альтернативные пути разрешения зависимостей на Linux
Примеры я приведу из другой статьи про ОС Slitaz Linux. Slitaz весьма ограничен и на популярных дистрибутивах с таким сталкиваешься редко. Но принцип поиска зависимостей на всех линуксах схож. И пригодиться эта информация может в любой ОС семейства Linux.
Не всегда софт устанавливается в пакетном менеджере со всеми зависимостями. Рассмотрим ситуацию на примере пакета браузера Seamonkey.
Вроде система пишет, что пакет проверяется, что зависимости выявлены, что часть зависимостей отсутствует и требуется их установка. Что вот они все установлены и теперь можно смело ставить пакет. Но в итоге видим банальное No such file or directiory
.
Тут можно пойти тремя путями:
- Скачать требуемую библиотеку и установить её (примеры выше).
- Проверить – есть ли эта библиотека в других пакетах, установленных или доступных.
- Найти ближайшего по версии родственника и сделать ссылку (ярлык).
Первый вариант хорош, но не так-то просто найти именно номерную библиотеку в сети. У библиотек есть версии и зачастую разные версии не взаимозаменяемы при старте программы. По факту часто заменяемы, но программа не будет проверять вероятность. Она будет проверять номер.
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) она затребует следующую зависимость, как на скриншоте ниже.
Вторую зависимость не удалось решить также, как первую. Требовалась 6-ая версия, в наличии есть 7-ая, но она не принимается программой. В этом случае нужно пробовать третий вариант.
Следует посмотреть по данным поиска, где располагается библиотека. В данном случае это каталог /usr/lib/ . Делаем копию симлинка (ярлыка) с 7-ой версии библиотеки libpvpx.so.7 и называем её libpvpx.so.6.
Пробуем перезапуск и на этот раз новых зависимостей не появляется.
Вопрос решён.
Читать далее:
Долгое время на сайте существовал общий каталог, около половины программ которого были кросс-платформенными. Со временем я старался прийти к единому набору софта, который будет работать на всех OC, которыми я пользуюсь. Но далеко не для каждого ПО можно отыскать равновесную альтернативу. Поэтому, чтобы не делать каких-то пометок в каталоге, я решил вести два отдельных – для Windows и для Linux.
Пару лет назад на одном форуме я, участвуя в одном жарком споре на тему чьё болото лучше
, опубликовал пост, который и раскроет тему данной статьи. Привожу его ниже:
Маленькое отступление по поводу Windows и Linux. Тут понимаете в чём дело: Windows - это совокупность ядра системы, а также служебных программ и скриптов, выполняющих определённые операции и задачи. На этой ОС у вас нет права изменять или удалять скрипты и системное ПО...
Linux – это не операционная система, а всего лишь ее ядро. Все, что вы привыкли видеть и понимать как операционку (кнопки, окна и панели) - на самом деле ею не является. То, что вы видите - это GUI (Graphical user interface), то есть графический интерфейс пользователя, именуемый также графической средой или графической оболочкой. GUI – это программа, призванная упростить жизнь пользователю, чтобы он не мучился с консолью. На самом деле любая ОС выглядит как консоль, то есть как старый добрый DOS.
Виды операционных систем, построенных на ядре Linux сильно разнятся как по обеспечению рабочим окружением, так и по набору прикладных программ, доступных в ОС. Это отчасти потому, что часть программ поддерживают лишь некоторые GUI или зависят от других программ, которых нет в данной системе. Беглый обзор различий и особенностей пёстрого мира Linux – в этой статье.




















