How to install executables
EDIT:
I decided to give @kba the answer because his approach works better with my backup solution and besides that. Having script executing the binaries gives you the possibility to add arguments.
But to be fair, @John WH Smith approach is just as good as @kba’s.
6 Answers 6
To call a program by its name, shells search the directories in the $PATH environment variable. In Debian, the default $PATH for your user should include /home/YOUR-USER-NAME/bin (i.e. ~/bin ).
First make sure the directory ~/bin exists or create it if it does not:
You can symlink binaries to that directory to make it available to the shell:
mkdir -p ~/bin ln -s /home/user/Downloads/VSCode-linux-x64/Code ~/bin/vscode
That will allow you to run vscode on the command line or from a command launcher.
Note: You can also copy binaries to the $PATH directories but that can cause problems if they depend on relative paths.
In general, though, it’s always preferable to properly install software using the means provided by the OS (apt-get, deb packages) or the build tools of a software project. This will ensure that dependent paths (like start scripts, man pages, configurations etc.) are set up correctly.
Update: Also reflecting Thomas Dickey’s comments and Faheem Mitha’s answer what I usually do for software that comes as a tarball with a top-level binary and expects to be run from there:
Put it in a sane location (in order of standards-compliance /opt , /usr/local or a folder in your home directory, e.g. ~/build ) and create an executable script wrapper in a $PATH location (e.g. /usr/local/bin or ~/bin ) that changes to that location and executes the binary:
#/bin/sh cd "$HOME/build/directory" exec ./top-level-binary "$@"
Since this emulates changing to that directory and executing the binary manually, it makes it easier to debug problems like non-existing relative paths.
I like this approach. Personally I’d just throw an alias into the bash profile, though it’d get messy fast if you had a lot of programs you did this with.
Then it can only be used from the shell. At some point you may want to install a .desktop entry to start from a menu or you add configuration, discover command line flags etc. An alias is very inflexible.
According to TLDP, /opt might be a good place for this kind of software. I’ve used it myself to store some printer-related tools, and the «dynamic» version of Skype (as kba said, «terminal support» can then be achieved by setting the PATH variable accordingly).
More generally, I tend to use /opt to «install» proprietary software packaged as an executable, but that’s probably just me. Besides, I tend to simply avoid this kind of software, since I usually have no certainty as to what it’s going to do once I run it.
Another reason why I chose /opt is because it is usually meant for third-party, independent code, which does not rely on any file outside of its /opt/’package’ directory (and other opt directories such as /etc/opt ).
Under no circumstances are other package files to exist outside the /opt, /var/opt, and /etc/opt hierarchies except for those package files that must reside in specific locations within the filesystem tree in order to function properly. [. ] Generally, all data required to support a package on a system must be present within /opt/’package’, including files intended to be copied into /etc/opt/’package’ and /var/opt/’package’ as well as reserved directories in /opt.
One advantage of releasing source code is that people get to configure the compilation process, providing custom library/headers paths based on their system’s specifics. When a developer decides to release code as an executable, that advantage is lost. IMHO, at this point, the developer is no longer allowed to assume that his/her program’s dependencies will be available (which is why everything should be packaged alongside the executable).
Any package to be installed here must locate its static files (ie. extra fonts, clipart, database files) in a separate /opt/’package’ or /opt/’provider’ directory tree (similar to the way in which Windows will install new software to its own directory tree C:\Windows\Progam Files\»Program Name»), where ‘package’ is a name that describes the software package and ‘provider’ is the provider’s LANANA registered name.
For more information, I would also suggest reading this other U&L question, which deals with the differences betwen /opt and /usr/local . I would personally avoid /usr/local in this case, especially if I’m not the one who built the program I’m installing.
Запуск EXE-файлов в Linux
Запуск EXE-файлов в Linux — задача несложная, однако небольшие трудности заключаются в поиске инструментов, позволяющих справиться с этим. Популярной программой является Wine, и ее аналогов почти нет, а существующие неизвестны практически никому. Поэтому в сегодняшней статье мы поговорим именно об этом решении. Начать стоит с его добавления в дистрибутив, поскольку по умолчанию Wine отсутствует в любой сборке ОС, основанной на Linux.
Способ 1: Менеджер приложений
Существует несколько доступных вариантов инсталляции Wine. Первый подразумевает использование менеджера приложений, который встроен в популярные дистрибутивы, основанные на Debian или RedHat. В первую очередь рассмотрим именно этот вариант, а осуществляется поставленная цель так:
- Откройте основное меню, кликнув по соответствующей кнопке, и запустите оттуда «Менеджер приложений».
Сейчас давайте приступим к рассмотрению альтернативного варианта инсталляции, если этот вам не подходит, а о предварительной настройке установленного инструмента поговорим в отдельном шаге данного материала.
Способ 2: Официальные репозитории
Как известно, программы в «Менеджере приложений» находятся в официальных репозиториях, а принцип их установки основан на терминальных командах. Именно их и следует задействовать в тех случаях, когда нет возможности открыть решение с GUI или оно попросту отсутствует в используемом дистрибутиве. Не переживайте, управление консолью не является чем-то сложным, в чем и удостоверимся далее.
- Запустите «Терминал» удобным для вас образом, например, через меню приложений или горячую клавишу Ctrl + Alt + T.
- В появившейся строке введите sudo apt install wine-stable . Если вы используете дистрибутив, основанный, например, на RedHat, следует заменить пакетный менеджер APT на установленный в текущей сборке. Это может быть, например, YUM или Pacman.
- Подтвердите действие, написав пароль суперпользователя. Учитывайте, что символы, вводимые таким образом, никогда не отображаются в консоли, однако существуют и исключения. В некоторых дистрибутивах при указании символов в строке появляются звездочки.
- Вы будете уведомлены об увеличении количества занятого пространства. Подтвердите это сообщение, выбрав вариант Д.
- Ожидайте окончания инсталляции. Во время этого не закрывайте «Терминал», иначе весь процесс будет сброшен.
На этом инсталляция завершена. Имеются еще и другие альтернативные методы добавления Wine в операционную систему, но их детальный разбор сейчас не имеет смысла, поэтому перемещаемся к следующему этапу.
Шаг 2: Первый запуск и настройка Wine
К счастью, большинство параметров рассматриваемой программы уже настроены автоматически, а недостающие компоненты так же самостоятельно загружаются. Однако юзеру все-таки придется выполнить несколько действий перед переходом к запуску EXE-файлов.
- Запустите софт, например, через «Менеджер приложений» или введя его название в консоли.
- Дождитесь завершения обновления конфигурации. Во время этого на экране будут появляться сообщения о надобности инсталляции дополнительных компонентов, включая .NET Framework и Gecko.
- После этого отобразится графическое меню с пользовательской конфигурацией. Здесь присутствуют детальные описания каждого пункта на русском языке, поэтому мы предлагаем разобраться с этим самостоятельно. Связано это и с тем, что все параметры устанавливаются по желанию пользователей.
На этом процедура конфигурации успешно завершена, а значит, можно переходить к непосредственному запуску имеющихся EXE-файлов.
Шаг 3: Запуск EXE-файлов через Wine
Перед началом выполнения поставленной задачи хотим отметить, что не стоит рассматривать Wine как полноценное средство работы с программами для Windows. Конечно, он является эмулятором, но потребление системных ресурсов при запуске софта поднимается в несколько раз, а также могут отсутствовать какие-либо опции, изначально работающие в Windows. Далее мы расскажем о более подходящих решениях для использования ПО в Linux, а сейчас давайте все-таки разберемся с выполнением EXE-объектов.
- Откройте файловый менеджер и переместитесь к расположению необходимого файла.
- Щелкните по нему правой кнопкой мыши и в контекстном меню выберите пункт «Открыть в другом приложении».
- Появится отдельное окно «Выбрать приложение». Здесь вас интересует пункт «Wine — загрузчик Windows программ».
- Если это уже полноценный софт, он откроется в новом окне и им можно управлять. В случае взаимодействия с инсталлятором начните стандартную операцию установки.
- Дождитесь окончания этой операции. Она может занять много времени, поскольку процессор в большинстве ситуаций нагружается на максимум.
- После этого вы можете запустить программу через значок на рабочем столе, графический интерфейс Wine или меню приложений.
Как уже было сказано ранее, запуск EXE-файлов — не лучший способ взаимодействовать с программами в Linux. Сейчас многие разработчики создают версии, корректно функционирующие в разных дистрибутивах, однако часто их нет в официальных репозиториях, то есть скачать из менеджеров приложений такой софт не получится. Приходится скачивать отдельные DEB или RPM-пакеты либо же вообще вручную распаковывать архивы. Не потрудитесь отыскать сборку требуемого софта для вашего дистрибутива, а затем установите ее, используя инструкции из приведенной далее статьи.
Это было все, что мы хотели рассказать о запуске ПО для Windows в Linux. Как видно, лучшее решение всего одно, поэтому его и задействуют абсолютно все пользователи, желающие реализовать данную цель. Остается только следовать инструкциям, чтобы без каких-либо проблем открыть EXE-элемент и начать взаимодействие с ним.