簡體   English   中英

如果不在同一目錄中,則無法運行配置文件

[英]Unable to run configure file if not in the same directory

我無法為手動tar.gz軟件包安裝運行配置文件。 例如,解壓縮文件后,我運行

$ sudo ./vim81/configure
[sudo] password for cli2:
./vim81/configure: line 6: cd: src: No such file or directory

但是,如果我位於配置文件所在的目錄中,則可以運行配置文件。

$ ./configure
configure: loading cache auto/config.cache
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
...

我的問題是,如果我與源文件不在同一目錄,如何執行配置文件?

我知道我可以使用yumapt-get來安裝vim,但這只是一個示例軟件包,我想對任何軟件包手動進行此操作。 謝謝。

我知道我可以使用yumapt-get來安裝vim,但這只是一個示例軟件包,我想對任何軟件包手動進行此操作。

即使將范圍限制為僅基於Autotools的軟件包(顯然,Vim並非完全如此),也沒有可以確保從源代碼構建的通用方法。 這就是軟件打包,軟件包存儲庫和軟件包管理器如此廣泛的原因之一。

作為一個已經完成了很多軟件包構建工作的人,我向您保證,當我遇到一個項目時,可以通過等效的直接configure; make; make install進行打包,這是一種難得的樂趣configure; make; make install configure; make; make install configure; make; make install 當我遇見一個人時,我就過得很開心。 其余時間,我必須根據每個軟件包找出任意數量的構建細節,例如

  • 使用哪個配置/構建系統( 如果有)
    • 自動工具/ CMake / Python setuptools等
    • 這會影響所需的構建/安裝命令,以及諸如/可以使用哪個工作目錄之類的詳細信息
  • 目標機器需要或適合哪些配置選項,以及如何將其表達給構建系統
    • 可以是configure腳本的選項,可以是make參數, make是對Makefile手動調整,可以是交互式問卷的答案,...
  • 需要什么依賴項,什么版本,以及如何獲取(如果我還沒有的話)
  • 有時,例如,如何清理安裝后的內容,
    • 刪除我不想安裝的文件
    • 將文件移到錯誤的位置(盡管最好使用構建配置)
    • 修復文件權限或所有權
  • 有時,還會執行其他安裝任務,例如
    • 添加外殼配置文件
    • 創建符號鏈接
    • 使用系統的服務控制子系統注冊服務
    • 安裝動態鏈接器配置文件

所有這些至少也同樣適用於手動構建。 如果你不依賴別人做到這一點,那么你需要准備自己做盡可能多的那些東西因為需要為你打造每一個項目(通過使用別人建的包IE)。 從那個開始就沒有辦法自動化它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM