Solaris

SPARC T4,Solaris 11,無法訪問網際網路,如何安裝系統標頭檔(或工作編譯器)

  • March 3, 2016

我需要在已經部署到客戶網路的 SPARC T4-1 (Solaris 11) 機器上編譯一個 C 程序,它不再可以訪問 Internet。最初在安裝過程中,編譯工具和系統標頭檔都沒有安裝,現在我在編譯 C 程序時遇到了麻煩。

根據 Internet 上的說明,我已經安裝了一個本地儲存庫,pkg pubisher現在顯示:

# pkg publisher
PUBLISHER                             TYPE     STATUS   URI
solaris                               origin   online   file:///export/repoSolaris11/repo/

但是,如果我嘗試安裝 gcc(gcc-dev我認為是 package ?),我收到了來自包管理器()的一堆投訴This version is excluded by installed incorporation,我得出的結論是,這是因為最初它是工廠安裝的(機器來自 Oracle 的設置,它沒有被觸及),現在我嘗試添加一個本地儲存庫,但版本不匹配。完成安裝嘗試: http: //pastebin.com/m3wazmU7

我想到了另一種安裝 C 編譯器的方法是 Solaris Studio IDE(在 DVD 上),我cc現在在機器上,但它缺少系統標頭檔,所以我什至無法編譯一個簡單的 hello world。嘗試將system/headers結果安裝到與 gcc-dev 非常相似的位置:

sudo pkg install system/header
Creating Plan /                
pkg install: No matching version of system/header can be installed:
 Reject:  pkg://solaris/system/header@0.5.11,5.11-0.175.1.0.0.24.2:20120919T184855Z
 Reason:  This version is excluded by installed incorporation     
 pkg://solaris/consolidation/osnet/osnet-incorporation@0.5.11,5.11-0.175.0.9.0.5.1:20120705T180850Z

我完全不熟悉 solaris 包管理的工作原理,我想知道是否有某種方法可以擺脫這些合併消息?或者我可以從某個地方解壓縮正確的標頭檔,然後針對這些標頭檔編譯程序嗎?

感謝您的任何提示

我不能不同意 Danila - 如果您有支持契約,請使用它。事實上,您可能希望使用它從 Solaris 11 升級到 Solaris 11.1。

也就是說,您的問題是您附加的本地儲存庫比您安裝的系統更新,並且沒有匹配的軟體包集。您想要獲取 Solaris 11 儲存庫 ISO(和所有 SRU),而不是 Solaris 11.1 儲存庫 ISO。

這是錯誤消息的關鍵部分:

 Reason:  All versions matching 'require' dependency pkg:/group/feature/developer-gnu@0.5.11,5.11-0.174.0.0.0.0.0 are rejected
   Reject:  pkg://solaris/group/feature/developer-gnu@0.5.11,5.11-0.175.1.0.0.24.0:20120904T180329Z
   Reason:  This version is excluded by installed incorporation pkg://solaris/consolidation/ips/ips-incorporation@0.5.11,5.11-0.175.0.9.0.3.0:20120623T000446Z

也就是說,不能安裝任何版本的包“developer-gnu”(“gcc-dev”的新名稱)。它只找到一個(S11.1 版本——“0.5.11”是所有 Solaris 11 系統包的版本,破折號後的分支版本顯示“Solaris 11”(0.175)“更新 1”(.1) , 沒有 SRU (.0), 沒有特殊平台 (.0), build 24 (.24), no respins (.0)), 但它不能因為 ips-incorporation 包, 即 S11 (FCS)安裝了 SRU 9 版本,這會將 developer-gnu 限制為匹配的版本。如果您執行,您可以準確地看到

pkg contents -m ips-incorporation

並在 fmri=group/feature/developer-gnu@… 上查找依賴操作(類型=incorporate)

通過設置構面來放鬆約束的建議對某些包很有用,但事實證明,這不是。此外,developer-gnu 只是一個組包,它將在 gcc 本身之上引入一堆 GNU 開發實用程序,包括 GNU binutils、GNU make、autotools、gdb 等。在一個更好的世界裡,你可以將每個這些包的版本鎖定方面設置為 false 並獨立安裝它們,忽略組包。但是您仍然會遇到問題,即您擁有的 repo 中的這些軟體包的版本是針對比您安裝的版本更新的作業系統版本建構的,因此它們的依賴關係也與那些較新的版本相對。除了繞過打包系統之外,您唯一的選擇是升級或獲取 S11+SRU 儲存庫。

引用自:https://serverfault.com/questions/560569