В чем разница между копированием файла a.out (исполняемого файла) и установкой приложения?

В чем разница между копированием файла a.out (исполняемого файла) и установкой приложения?

В чем разница между установкой прикладного программного обеспечения и копированием исполняемого файла (например, a.out) приложения? Когда мы запускаем файл a.out, он дает какой-то результат, запуск установленного приложения также дает какой-то результат. Я не понимаю разницы, когда кто-то говорит «Установка приложения» и копирование исполняемого файла. Что на самом деле происходит при установке приложения? Чем это отличается от простого копирования исполняемого файла с одного компьютера на другой (та же ОС и похожее оборудование) и запуска его там?

решение1

Ну, когда говорятустановкаприложение, что обычно означает, что вы используете менеджер пакетов, например, dpkgили семейство более высокого уровня apt. В этом случае исполняемые файлы поставляются в пакете, который также может содержать дополнительные библиотеки, необходимые для запуска исполняемого файла, man-страницы, файлы разработчика, файлы конфигурации и т. д. Преимущество этого заключается в том, что администратор может отслеживать, что установлено, а также гарантировать, что при установке нового программного обеспечения или обновлений новое программное обеспечение не будет конфликтовать с другим программным обеспечением и библиотеками, уже установленными, что может привести к сбою других приложений.

Итак, хотя может сработать простое копирование исполняемого файла в другую систему, делать этого не рекомендуется, так как это может все сломать. Безопасно копировать исполняемые файлы куда-то за пределы системных путей, например /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

решение2

Основной принцип всех Unix-подобных операционных систем (например, Ubuntu) заключается в следующем:все есть файл. Если вы посмотрите на содержимое пакета, вы также найдете там исполняемый файл, и да, для двух машин с абсолютно одинаковой (или, по крайней мере, очень похожей) комбинацией программного и аппаратного обеспечения (Платформа), вы могли бы просто использовать свой исполняемый файл. Но большинство программ не состоят только из одного исполняемого файла. Запустите ls -R /usr |grep libreofficeдля примера более сложный пакет, вы же не хотите копировать все эти файлы в их отдельные местоположения вручную сейчас, не так ли?

Хотя в некоторых случаях (особенно при тестировании небольших программ) имеет смысл просто отправить кому-то исполняемый файл, который он сможет запустить, почти всегда вам захочется предоставить пакет для готового продукта.

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

Связанный контент