Портативные программы в 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? Будете ими пользоваться? Нужно ли Losst создать свою библиотеку портативных программ для Linux? Напишите в комментариях!

Creative Commons License
Статья Портативные программы в Linux распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.
Ваше имя тоже может быть здесь. Начните писать статьи для Losst. Это просто! Смотрите подробнее как начать писать статьи - Пишите для нас

Оцените статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (16 оценок, среднее: 5,00 из 5)
Загрузка...

8 комментариев

  1. Duke Июль 4, 2016 Ответить
  2. T1m0n Апрель 18, 2017 Ответить
  3. Дмитрий Август 15, 2017 Ответить
    • Александр Август 16, 2017 Ответить
  4. Дмитрий Август 23, 2017 Ответить
  5. Сергей Ноябрь 21, 2017 Ответить
  6. Яков Март 9, 2018 Ответить
  7. Рысь Март 27, 2018 Ответить

Ответить

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: