複製 a.out 檔案(可執行檔)和安裝應用程式有什麼區別?

複製 a.out 檔案(可執行檔)和安裝應用程式有什麼區別?

安裝應用程式軟體和複製應用程式的執行檔(例如:a.out)有什麼區別?當我們運行 a.out 檔案時,它會給出一些結果,運行已安裝的應用程式也會給出一些結果。我不明白有人說“安裝應用程式”和複製可執行檔時的區別。安裝應用程式時實際上會發生什麼?它與僅將可執行檔從一台電腦複製到另一台電腦(相同的作業系統和類似的硬體)並在那裡運行有何不同?

答案1

嗯,當說安裝一個應用程序,這通常意味著您使用類似dpkg或更高級apt系列的套件管理器。在這種情況下,可執行檔以一個套件形式提供,該套件還可以包含執行可執行檔、線上說明頁、開發人員檔案、設定檔等所需的其他程式庫。追蹤安裝的內容和還確保在安裝新軟體或更新時,新軟體不會與已安裝的其他軟體和庫發生衝突,這可能導致其他應用程式崩潰。

因此,雖然將可執行檔複製到另一個系統可能可行,但不建議這樣做,因為它可能會破壞東西。將可執行檔複製到系統路徑之外的某個位置是安全的,例如/bin/, /sbin, /usr/bin, /usr/sbin
您可以使用/usr/local/binand/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 清單中,最後但並非最不重要的一點是提供在發布新版本時更新程式的選項。

相關內容