В чем разница между установкой прикладного программного обеспечения и копированием исполняемого файла (например, a.out) приложения? Когда мы запускаем файл a.out, он дает некоторый результат, запуск установленного приложения также дает некоторый результат. Я не понимаю разницы, когда кто-то говорит «Установка приложения» и копирует исполняемый файл. Что на самом деле происходит при установке приложения? Чем это отличается от простого копирования исполняемого файла с одного компьютера на другой (та же операционная система и подобное оборудование) и запуска его там?
Ну, при высказывании устанавливания приложения, которое обычно означает, что Вы используете диспетчер пакетов как dpkg
или более высокий уровень apt
семейство. В этом случае исполняемые файлы поставляются в пакете, который также может содержать дополнительные библиотеки, которые необходимы для выполнения исполняемого файла, страниц справочника, файлов разработчика, конфигурационные файлы и т.д. Преимущество этого состоит в том, что администратор может отслеживать то, что установлено и также гарантирует, что при установке нового программного обеспечения или обновлений, новое программное обеспечение не сталкивается с другим программным обеспечением и библиотеками, уже установленными, который мог привести к другому катастрофическому отказу приложений.
Так, в то время как это могло бы работать, чтобы просто скопировать по Вашему исполняемому файлу в другую систему, это не рекомендуется, поскольку это может повредить вещи. Безопасно скопировать исполняемые файлы в где-нибудь вне системных путей как /bin/
, /sbin
, /usr/bin
, /usr/sbin
.
Вы могли использовать /usr/local/bin
и /usr/local/sbin
для такой цели или еще лучше создают каталог под /opt
для Вашего исполняемого файла и места это там. Затем назовите исполняемый файл с полным путем или добавьте путь к исполняемому файлу к Вашему PATH
переменная среды.
$ mkdir -p /opt/myapp/bin
$ cp myexec /opt/myapp/bin/
$ /opt/myapp/bin/myexec
или
$ export PATH=$PATH:/opt/myapp/bin
$ myexec
Базовый принцип всех подобных Unix операционных систем (как Ubuntu) является всем, файл. При рассмотрении содержания пакета Вы также найдете исполняемый файл там, и да, для двух машин с тем же самым (или по крайней мере очень похожий) комбинация программного и аппаратного обеспечения (платформа), Вы могли просто использовать свой исполняемый файл. Но большинство программ не состоит только из одного исполняемого файла. Выполненный ls -R /usr |grep libreoffice
для примера более сложного пакета Вы не хотели бы копировать все те файлы в их отдельных местоположениях вручную теперь, не так ли?
В то время как в некоторых случаях (особенно при тестировании небольших программ) действительно имеет смысл просто отправлять кому-то исполняемый файл, они могут работать, Вы будете почти всегда хотеть обеспечить пакет для готового изделия.
Диспетчеры пакетов обычно также заботятся об установке зависимостей, добавляя Вашу программу к списку установленных приложений и ПУТИ, и наконец, что не менее важно, предоставляют возможность обновлять программу, когда новая версия выпущена.