Портативні програми в Linux, Losst

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

У Linux теж є щось подібне. Взагалі кажучи, як портативну можна використовувати будь-яку програму, просто зберіть програму з вихідних джерел, скачайте файл, що виконується в інтернеті або скиньте у знайомого і можете запускати з будь-якої папки.

Але в такому разі залишається одна проблема – це переносимість. Програма залежить від великої кількості бібліотек певних версій і щоб вона запрацювала, необхідно, щоб всі ці бібліотеки були доступні в системі. Але в різних дистрибутивах, навіть ті самі бібліотеки можуть називатися по-різному. Тому для того, щоб реалізувати портативні програми в Linux, були придумані спеціальні рішення.

Одне з таких рішень ми розглянемо сьогодні. Це AppImage, проект заснований Elemantary та Portable Linux Apps. Одна програма складається з одного файлу образу, в якому знаходяться всі необхідні для роботи бібліотеки, конфіги і сама програма. Правда залишився один мінус - конфігурація зберігається, як і раніше, в домашній папці користувача.

Фактично програма є ISO образ упакований спеціальним способом і містить біт виконуваності. Для запуску програм не потрібно нічого встановлювати, достатньо завантажити програму, зробити її виконуваною і запускати. А завдяки тому, що всі бібліотеки знаходяться всередині образу, її можнавикористовувати у більшості дистрибутивів Linux. Також такий спосіб підходить для запуску тестових програм, які вимагають особливих залежностей, але ви можете не засмічувати систему і просто завантажити програму одним файлом.

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

портативні

На сайті є пошук, тому ви можете спробувати знайти потрібну програму:

linux

Щоб скачати програму, вам потрібно перейти на вкладку Files, потім вибрати відповідну версію і просто клацнути по ній.

портативні

Після закінчення завантаження залишилося зробити файл, що виконується за допомогою наступної команди:

І можна запускати виконання:

Як бачите, програма повністю працює, і тепер її можна записати на флешку і пробувати в іншому дистрибутиві.

linux

Створення портативних програм у 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

У вікні, натиснітьВперед:

linux

Потім ще разВперед :

losst

Зараз програма виконує сканування системи, щоб помітити всі зміни під час інсталяції програми:

програми

портативні

Як тільки сканування буде завершено, можете переходити до встановлення програми будь-яким зручним способом. Ми встановимо Vivaldi із завантаженого з офіційного сайту RPM пакету, командою:

sudo zypper install

Але не забувайте, що неважливо як ви встановлюєте програму.

Як тільки інсталяцію буде завершено, поверніться у вікно AppDirAssistant і знову натиснітьВперед.

Система буде ще раз просканована, щоб виявити всі зміни:

програми

програми

Залишаємо значення як є і натискаємоВперед. Програма автоматично збере папку програми Vivaldi, сама визначить її назву та підготує всі файли:

losst

Після завершення буде показано повідомлення,що все готове:

портативні

Папки програм за замовчуванням зберігаються в папку Desktop, на даному етапі, ви можете додати до програми додаткові бібліотеки, просто скопіювавши їх у підпаку папка_програми.AppDir/usr/lib/

Дізнатися які бібліотеки використовує програма можна командою ldd, наприклад для нашого Vivaldi:

ldd /opt/vivaldi/vivaldi-bin sed 's/=>.*//'sed 's/\t//'sed 's/\ (0x.*//'

Звичайно команда не застосовна до скриптів, потрібно знайти саме файл, що виконується.

Тепер, коли все готово, можна переходити до збирання образу портативної програми AppImage. Для цього запустіть утиліту AppImageAssistant:

У першому вікні майстра просто натиснітьВперед :

програми

Далі виберіть папку з щойно створеної AppDir програми:

losst

Після цього відразу ж почнеться упаковка образу:

losst

Потім ви можете взяти готову програму в папці

/Desctop, скопіювати її кудись і можна запустити:

програми

Як бачите, все працює. Можна скидати програму на флешку та користуватися в будь-якій системі.

losst