Ubuntu Эквивалент портативного исполняемого файла

Я разрабатываю приложение, которое имеет определенную зависимость, и для этого я использую внешние инструменты. Одним из примеров является то, что я использую инструмент командной строки putty plink.exe для удаленной машины telnet / ssh из java-программы.

Теперь, когда я переключаюсь на ubuntu, для этого есть утилита sshpass, которая делает то же самое для меня. Теперь проблема заключается в том, что sshpass еще не установлен и до его установки моя программа не будет работать.

В окнах, если что-то не существует, я могу упаковать переносимый исполняемый файл в свою программу, например, этот plink.exe, и использовать его во время выполнения для выполнения задания. Теперь в ubuntu, я хочу знать, есть ли какой-либо способ, который я упаковываю .exe как файл, который я могу просто вызвать с помощью аргументов для выполнения подобных задач?

В принципе, я хочу знать, есть ли в ubuntu, чтобы запустить файл без необходимости его устанавливать? если да, то как это возможно?

3
задан 6 March 2012 в 21:53

1 ответ

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

Linux-путь заключается в установке каждой программы только один раз, если вам нужно использовать shhpass, вы не должны связывать ее с вашим но вы должны указать его как зависимость в установочном пакете (например, deb-файл для Ubuntu). Управление пакетами будет извлекаться и устанавливаться при установке вашей программы.

Существует несколько причин для такого поведения: от эффективности (использования разделяемой памяти) до обеспечения безопасности (вы можете отправить ошибку безопасности вместе с вашим комплектом программа). Поскольку у всего этого подхода есть и свои недостатки, в основном потребность в централизованном месте для установки программного обеспечения, но важным моментом в вашем ответе является то, как дела обстоят не так, как могло бы быть.

Короткий ответ: да , вы можете это сделать, но это будет сложно. Вы будете бороться против культуры и дизайна unix-подобных ОС. Вероятно, вам придется скомпилировать собственные версии каждой программы, которую вы хотите связать, и большинству пакетов и пользователей не понравится.

3
ответ дан 15 August 2018 в 20:01

Другие вопросы по тегам:

Похожие вопросы: