Портативные приложения для Linux?

11

Задавание этого вопроса заставило меня задуматься - есть ли портативные приложения для Linux? Я знаю, что многие простые инструменты могут работать автономно, но столкнусь ли я с ограничениями безопасности в обычных дистрибутивах Linux?

В любом случае, учитывая наличие инструментов и т. Д. В большинстве систем Linux по умолчанию, есть ли необходимость в этом?

РЕДАКТИРОВАТЬ: Чтобы уточнить, я ищу приложения, которые я могу запустить в существующей системе Linux - я не хочу носить с собой всю ОС, если мне не нужно.

Энди Микула
источник

Ответы:

6

Большинство приложений, использующих цепочку инструментов GNU, могут быть построены из исходного кода:

./configure --prefix=[directory which will contain your 'portable' application]
make
make install

а затем перешел на другой компьютер с совместимыми библиотеками.

В Linux нет реестра, многие приложения обычно не нужно «устанавливать», их можно создавать из исходного кода, поэтому создание «My Specialy Portable © приложения для Linux» совершенно бессмысленно, так что я думаю, что это никому не нужно.

Просто посмотрите на самый лучший ответ на этот вопрос, и вы поймете, что глупая концепция сделать приложения «портативными» «полезными» только в мире реестров и проприетарных приложений с управлением лицензиями.

Алекс Болотов
источник
Благодарность! Я не был уверен, что раньше это было глупо, но вы действительно довели это до конца;)
Энди Микула
4

./configureТрюк будет работать для некоторых приложений. Однако многие приложения кодируют префикс в себя, а затем используют его во время выполнения для поиска вспомогательных файлов. Им также нужна возможность загружать свои файлы общей библиотеки (хотя для этого LD_LIBRARY_PATHможно установить переменную среды). Результатом этого, однако, является то, что переносимые приложения, вероятно, будут не очень переносимыми - они будут зависеть от того, находятся ли они по указанному префиксу. Это, вероятно, будет работать во многих местах (в большинстве современных дистрибутивов для монтирования носителей /media/DISKNAME), но не позволяет приложению быть по-настоящему портативным и не зависящим от местоположения.

Таким образом, общий ответ заключается в том, что создание портативных приложений для Linux, хотя и не невозможно, но изобилует тонкостями. Я подозреваю, что это является основным фактором, объясняющим, почему это делается не так часто, как в Windows. Кроме того, общедоступные вычислительные средства (где возникает большая часть преимуществ переносимых приложений) обычно не работают под управлением Linux. Заметным исключением являются университетские лаборатории, но вы обычно можете установить дополнительное программное обеспечение в своем домашнем каталоге.

Майкл Экстранд
источник
1

Linux for Travelers отслеживает эту тему и имеет несколько хитростей, позволяющих обойти тот факт, что нет (пока?) Переносимых приложений, предназначенных для Linux - вероятно, по той причине, которую вы упомянули: если у вас уже есть права на установку, добавление новых приложений достаточно просто. не нужно использовать ваши портативные.

  • Установите WINE и запустите приложения с PortableApps.com или в другом месте. Это кажется излишним, но оно позволяет вам использовать уже установленную портативную программу.
  • Запустите Damn Small Linux внутри существующей установки Linux (например, в Ubuntu ). Это один полезно , если вы не уже устанавливать привилегии на данной системе Linux.
кварк
источник
1

Вы можете проверить Portable Linux Apps . Просто загрузите переносимые двоичные файлы и сделайте их исполняемыми. все необходимые зависимости включены в двоичный файл.

пользователь
источник
1

Чтобы сделать любое приложение переносимым, вы можете создавать символические ссылки, которые вы помещаете в домашнюю папку при входе в систему; приложение сохранит настройки через символическую ссылку, куда бы оно ни направлялось, скажем, на флэш-накопитель. Я использовал это для портативных сейфов Minecraft.

Эндрю Воннакотт
источник
1

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

VTEST
источник
1

Еще один подход к вашему вопросу - это сегодняшние стартапы, которые часто пишут код на стороне клиента, а затем используют фреймворки для тяжелой работы по синтезированию клиентов для iOS, Android и Интернета. Здесь бизнес-логика переносима, но автоматически переносится этим инструментом. Таких рамок много, Метеор один.

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

Чтобы еще больше размыть эту идею, у нас теперь есть WebAssembly, которая позволяет вам писать код вашего браузера (который по определению является javascript) на растущем количестве статически компилируемых традиционно серверных языков, которые анализируются для синтеза javascript для целевого клиента.

Вы спрашиваете о приложениях Linux, однако с такими инструментами, как Electron, который фактически представляет собой графический интерфейс или командную строку, обернутую вокруг nodejs, идея переносимых приложений Linux испытывает взрыв выбора

Скотт Стенсленд
источник
0

На поле появился новый игрок, AppImage . Приложения упакованы в один файл со всеми зависимостями, поэтому они могут запускаться независимо от базового дистрибутива.

В AppImageHub есть хранилище изображений приложений .

DevSolar
источник