Портативные программы в Linux


В операционной системе Windows мы довольно часто используем портативные программы. Это программы которые не требуют установки, сохраняют конфигурационные файлы при себе и запускаются независимо от установленных в системе компонентов. Их возможности могут быть очень полезны при создании флешек восстановления, тестирования нового программного обеспечения или просто установки новых программ, которых пока еще нет в репозиториях.

В Linux тоже есть-что то подобное. Вообще говоря, как портативную можно использовать любую программу, просто соберите программу из исходников, скачайте исполняемый файл в интернете или скиньте у знакомого и можете запускать из любой папки.
Но в таком случае остается одна проблема - это переносимость. Программа зависит от большого количества библиотек определенных версий и чтобы она заработала необходимо, чтобы все эти библиотеки были доступны в системе. Но в разных дистрибутивах, даже одни и те же библиотеки могут называться по разному. Поэтому для того чтобы реализовать портативные программы в Linux были придуманы специальные решения.
Одно из таких решений мы и рассмотрим сегодня. Это AppImage, проект основанный Elemantary и Portable Linux Apps. Одна программа состоит из одного файла образа, в котором находятся все необходимые для ее работы библиотеки, конфиги и сама программа. Правда остался один минус - конфигурация сохраняется по прежнему в домашней папке пользователя.
Фактически программа представляет собой ISO образ упакованный специальным способом и содержащий бит исполняемости. Для запуска программ не нужно ничего устанавливать достаточно скачать программу, сделать ее исполняемой и запускать. А благодаря тому, что все библиотеки находятся внутри образа, ее можно использовать в большинстве дистрибутивов Linux. Также такой способ подходит для запуска тестовых программ, которые требуют особые зависимости, но вы можете не засорять систему и просто скачать программу одним файлом.

ПОРТАТИВНЫЕ ПРОГРАММЫ В LINUX

Небольшую коллекцию программ AppImage можно найти на сайте: bintray.com/probono/AppImages. Это программы собранные разработчиками пакета. Здесь есть популярные браузеры, медиаплееры и текстовые редакторы и другие утилиты:
appimage
На сайте есть поиск, поэтому вы можете попытаться найти нужную программу:
appimage1
Чтобы скачать программу, вам нужно перейти на вкладку Files, затем выбрать подходящую версию и просто кликнуть по ней.
appimage2
После окончания загрузки осталось сделать файл исполняемым с помощью следующей команды:
 chmod u+x ~/Загрузки/Chromium-51.0.2684.0-x86_64.AppImage
И можно запускать выполнение:
 ~/Загрузки/Chromium-51.0.2684.0-x86_64.AppImage
Как видите программа полностью работает, и теперь ее можно записать на флешку и пробовать в другом дистрибутиве.
appimage3
Но не только здесь можно найти программы в формате AppImage, некоторые разработчики сами распространяют свои продукты в этом формате, например известный видеоредактор OpenShot. Если вы хотите установить эту программу в своей системе и это не Ubuntu, вам придется очень сильно постараться. Поскольку пакеты готовы только для Ubuntu, а программа требует различные зависимости от разных пакетов Python до нужной версии Qt. Но с помощью AppImage вы можете установить программу в пару кликов.

СОЗДАНИЕ ПОРТАТИВНЫХ ПРОГРАММ В LINUX

На самом деле в репозитории этих портативных программ не так уж много, и есть там только самые популярные, но что делать, если нужной вам программы там нет? Все просто, можно создать портативную программу Linux с помощью appimage самому, это очень легко. Для этого даже существуют инструменты с графическим интерфейсом.
В этой статье мы создадим AppImage образ для нового и очень перспективного браузера Vivaldi. Нам понадобятся два инструмента из AppImageKit - AppImageAssistant и AppDirAssisant. Первый предназначен для упаковки образа, а второй для сбора информации и файлов которые будут упакованы. Если кратко, то программа просканирует систему перед установкой программы, потом вы можете устанавливать нужную программу и ее зависимости любым способом, неважно будет то менеджер пакетов, ручная установка или сборка из исходников. Далее программа находит все измененные файлы, помещает их в специальную директорию и уже на основе той директории будет создан образ AppImage. Ну а теперь все по порядку.
Сначала скачаем нужное программное обеспечение:
Но тут есть один нюанс. Программы собраны для 32 битной архитектуры, поэтому в 64 битной системе для нормальной работы может не хватать библиотек libfuse.so-2 и libglade-2.0.so.0 в Ubuntu они очень просто устанавливаются с помощью пакетного менеджера, а для других дистрибутивов вы можете найти их в интернете и просто положить в папку /usr/lib. Во всем же остальном это такие же портативные программы, поэтому вы сможете работать с ними в любом Linux дистрибутиве.
Перейдем непосредственно к созданию портативной программы Linux, откройте AppDirAssistant, для этого в терминале перейдите в папку с программой и выполните:
 cd /Папка/С/Программой/
$ ./AppDirAssistant\ 0.3.1

В появившимся окне нажмите Вперед:
appimage4
 
Затем еще раз Вперед:
appimage5
Сейчас программа выполняет сканирование системы, чтобы заметить все изменения во время установки программы:
appimage6
appimage7
Как только сканирование будет завершено, можете переходить к установке программы любым удобным способом. Мы установим Vivaldi из скачанного с официального сайта RPM пакета, командой:
 sudo zypper install ~/Загрузки/vivaldi-stable-1.1.453.52-1.x86_64.rpm
Но не забывайте, что неважно как вы устанавливаете программу.
Как только установка будет завершена, вернитесь в окно программы AppDirAssistant и снова нажмите Вперед.
Система будет еще раз просканирована, чтобы выявить все изменения:
appimage8
Затем возможно появится вот такое окно с выбором точки просмотра:
appimage9
Оставляем значение как есть и нажимаем Вперед. Программа автоматически соберет папку программы Vivaldi, сама определит ее название и подготовит все файлы:
appimage10
После завершения будет показано сообщение, что все готово:
appimage11
Папки приложений по умолчанию сохраняются в папку Desktop, на данном этапе, вы можете добавить к программе дополнительные библиотеки, просто скопировав их в под-паку папка_приложения.AppDir/usr/lib/
Узнать какие библиотеки использует программа можно командой ldd, например для нашего Vivaldi:
 ldd /opt/vivaldi/vivaldi-bin | sed 's/=>.*//'|sed 's/\t//'|sed 's/\ (0x.*//'
Конечно команда не применима к скриптам, нужно найти именно исполняемый файл.
Теперь, когда все готово, можно переходить к сборке образа портативной программы AppImage. Для этого запустите утилиту AppImageAssistant:
 ./AppImageAssistant\ 0.9
В первом окне мастера просто нажмите Вперед:
appimage12
Дальше выберите папку с только что созданной AppDir приложения:
appimage15
После этого, сразу же начнется упаковка образа:
appimage13
Затем, вы можете взять готовую программу в папке ~/Desctop, скопировать ее куда-нибудь и можно запустить:
 ~/.Vivaldi
appimage14
Как видите все работает. Можно скидывать программу на флешку и пользоваться в любой системе.
vivaldi

ВЫВОДЫ

Портативные программы Linux - это очень спорная технология. С одной стороны это очень удобно, потому что можно распространять софт поддерживаемый любым дистрибутивом, решается проблема с зависимостями, но с другой, такой способ распространения программ может повлечь за собой увеличение количества вирусов для Linux, ведь минимальное распространение вирусов обусловлено тем, что все программы устанавливаются из небольшого количества надежных и хорошо проверенных источников. А как вы считаете? Нужны ли Portable программы в Linux? Будете ими пользоваться?

Похожее

Добавить комментарий

Оставить комментарий