Я иногда сталкиваюсь с программным обеспечением, которое не предлагается .deb
или .rpm
только как исполняемый файл.
Например, Visual Studio Code , WebStorm или Kerbal Space Programm .
Для этого вопроса я возьму Visual Studio Code в качестве ориентира.
Программное обеспечение предлагается в виде упакованного пакета.
При распаковке у меня остается папка с именем, VSCode-linux-x64
которая содержит исполняемый файл с именем Code
.
Я могу дважды щелкнуть Code
или указать на него с помощью моего терминала, как /home/user/Downloads/VSCode-linux-x64/Code
выполнить его.
Тем не менее, я хотел бы знать, если есть правильный способ установки этого приложения.
Чего я хочу достичь:
- одно место, где я могу разместить все приложения / программы, которые предлагаются таким образом (исполняемые файлы)
- поддержка терминала (это означает, например: я могу писать
vscode
из любой папки в моем терминале, и он автоматически выполнит код Visual Studio.
Дополнительная информация:
- Окружение рабочего стола: Gnome3
- ОС: Debian
РЕДАКТИРОВАТЬ:
Я решил дать @kba ответ, потому что его подход лучше работает с моим решением для резервного копирования и, кроме того. Наличие скрипта, исполняющего двоичные файлы, дает вам возможность добавлять аргументы.
Но, честно говоря, подход @Джон В.Х. Смита так же хорош, как и подход @ kba.
источник
.desktop
запись для запуска из меню или добавить конфигурацию, обнаружить флаги командной строки и т. Д. Псевдоним очень негибкий.Согласно TLDP , это
/opt
может быть хорошим местом для такого рода программного обеспечения. Я сам использовал его для хранения некоторых инструментов, связанных с принтером, и «динамической» версии Skype (как сказал kba, «поддержка терминала» может быть достигнута путем соответствующей установкиPATH
переменной).В более общем смысле, я склонен использовать
/opt
для «установки» проприетарное программное обеспечение, упакованное как исполняемый файл, но это, вероятно, только я. Кроме того, я склонен просто избегать такого рода программного обеспечения, поскольку у меня обычно нет уверенности в том, что он собирается делать после запуска.Другая причина, по которой я выбрал,
/opt
заключается в том, что он обычно предназначен для стороннего независимого кода, который не зависит ни от какого файла за пределами своего/opt/'package'
каталога (и другихopt
каталогов, таких как/etc/opt
).Одним из преимуществ выпуска исходного кода является то, что люди могут настраивать процесс компиляции, предоставляя собственные пути к библиотекам / заголовкам в зависимости от особенностей своей системы. Когда разработчик решает выпустить код как исполняемый файл, это преимущество теряется. ИМХО, на этом этапе разработчику больше не разрешается предполагать, что зависимости его / ее программы будут доступны (именно поэтому все должно быть упаковано вместе с исполняемым файлом).
Для получения дополнительной информации, я бы также предложил прочитать этот другой вопрос U & L , который касается различий между
/opt
и/usr/local
. Я бы лично избегал/usr/local
в этом случае, особенно если я не тот, кто создал программу, которую я устанавливаю.источник
Вполне возможно, и на самом деле довольно просто, создать дистрибутивный двоичный пакет из двоичного zip-архива или архива, как в вашем примере кода Visual Studio.
Да, бинарные пакеты дистрибутива Linux, такие как
deb
s иrpm
s, обычно генерируются из исходного кода, но это не обязательно. И часто (хотя и не всегда) можно устроить так, чтобы получающийся двоичный пакет распространения устанавливал вещи в «правильных» местах, чтобы соответствовать политике распространения.В случае случайного проприетарного архива, если был способ правильно установить программное обеспечение, например, цель установки в make-файле, то это можно было бы использовать с механизмом распространения пакетов. В противном случае, это может привести к «ручному» отображению файлов в «правильные» места, что может быть большой работой. Хотя создание такого пакета может показаться странным, у него все равно будет одно из основных преимуществ управления пакетами, а именно чистая установка и удаление. И, конечно, такой пакет никогда не будет принят ни в одном дистрибутиве Linux, достойном названия, но это не ваш вопрос.
источник
fpm
.Я редко видел программное обеспечение, которое поставляется в виде двоичного исполняемого файла и ничего более, и я бы, честно говоря, немного подозрительно относился к нему. Если ничего другого, я бы по крайней мере ожидал
README
(с инструкциями по его установке) и a,LICENSE
чтобы сопровождать его. Что, как говорится...Обычное место, где хранятся локально установленные двоичные файлы, не управляемые менеджером пакетов дистрибутива, это
/usr/local/bin
. Вы можете поместить его туда, и так как этот каталог уже (или должен быть) уже в вашем,$PATH
вы можете запустить программное обеспечение, введя его имя в командной строке.Обычно в программном обеспечении также должна быть справочная страница (недокументированное программное обеспечение - это плохо, верно?), Которая входит
/usr/local/man
и может иметь некоторые вспомогательные файлы, такие как переводы на другие языки и плагины, которые могут входить/usr/local/share
или/usr/local/lib
, и так далее. По этой причине программное обеспечение, которое не поставляется в виде пакета, такого как.deb
или.rpm
обычно поставляется с установщиком, который размещает все в нужных местах. Когда вы устанавливаете из источника, это обычноmake install
.источник
Code
- это только отправная точка. При запуске может отображаться лицензия (64-битный исполняемый файл не запускается на компьютере под рукой, но кто-то должен проверить такие вещи, чтобы дать хороший ответ на актуальный вопрос OP./usr/local
а не в свой домашний каталог. (Не все программы будут работать,Eclipse
например.)