2012-08-14 45 views
0

當我嘗試安裝離線g ++ - 4.4軟件包時,它依賴於libstdC++ 6-4.4-dev,當我嘗試安裝libstdC++ 6-4.4-dev時,它給出依賴於g ++ - 4.4。在10.04上離線安裝g ++給出循環依賴關係

[email protected]:~/Download/g++$ sudo dpkg -i g++-4.4_4.4.3-4ubuntu5.1_amd64.deb 
    (Reading database ... 45040 files and directories currently installed.) 
    Preparing to replace g++-4.4 4.4.3-4ubuntu5.1 (using g++-4.4_4.4.3-4ubuntu5.1_amd64.deb) ... 
    Unpacking replacement g++-4.4 ... 
    dpkg: dependency problems prevent configuration of g++-4.4: 
    g++-4.4 depends on libstdc++6-4.4-dev (= 4.4.3-4ubuntu5.1); however: 
     Package libstdc++6-4.4-dev is not configured yet. 
    dpkg: error processing g++-4.4 (--install): 
    dependency problems - leaving unconfigured 
    Processing triggers for man-db ... 
    Errors were encountered while processing: 
    g++-4.4 
    [email protected]:~/Download/g++$ sudo dpkg -i libstdc++6-4.4-dev_4.4.3-4ubuntu5.1_amd64.deb 
    (Reading database ... 45040 files and directories currently installed.) 
    Preparing to replace libstdc++6-4.4-dev 4.4.3-4ubuntu5.1 (using libstdc++6-4.4-dev_4.4.3-4ubuntu5.1_amd64.deb) ... 
    Unpacking replacement libstdc++6-4.4-dev ... 
    dpkg: dependency problems prevent configuration of libstdc++6-4.4-dev: 
    libstdc++6-4.4-dev depends on g++-4.4 (= 4.4.3-4ubuntu5.1); however: 
     Package g++-4.4 is not configured yet. 
    dpkg: error processing libstdc++6-4.4-dev (--install): 
    dependency problems - leaving unconfigured 
    Errors were encountered while processing: 
    libstdc++6-4.4-dev 

回答

1

嘗試同時安裝它們:

sudo dpkg -i ./*.deb 
+0

不工作。 不顯示任何錯誤。但是當我嘗試通過'$ g ++ -v'獲取g ++版本時,它什麼也沒有顯示。 這裏是: – vikash 2012-08-14 06:26:52

+0

'ocpe @ blrkec241972d:〜/ Download/g ++ $ sudo dpkg -i ./*.deb (正在讀取數據庫... 45040目前安裝的文件和目錄) 準備替換g ++ - 4.4。 3-4ubuntu5.1(使用.../g ++ - 4.4_4.4.3-4ubuntu5.1_amd64.deb)... 拆包更換g ++ - 4.4 ... 準備替換libstdC++ 6 4.4.3-4ubuntu5。 1(使用.../libstdC++ 6_4.4.3-4ubuntu5.1_amd64.deb)... 拆包替換libstdC++ 6 ... 準備替換libstdC++ 6-4.4-dev 4.4.3-4ubuntu5 .1(使用.../libstdC++ 6-4.4-dev_4.4.3-4ubuntu5.1_amd64.deb) 開箱替換libstdC++ 6-4.4-dev 設置libstdC++ 6(4.4.3-4ubuntu5。 1)' – vikash 2012-08-14 06:27:53

+0

'設置g ++ - 4.4(4.4.3-4ubuntu5.1)... 處理man-db的觸發器... 設置libstdC++ 6-4.4-dev(4.4.3-4ubuntu5.1)... ocpe @ blrkec241972d:〜/ Download/g ++ $ g ++ -v 程序'g ++'可以在以下軟件包中找到: * g ++ ' – vikash 2012-08-14 06:28:28

0

這可能在某些情況下工作,但我最近遇到了在Linux Mint的13所建議的命令同樣的問題(須藤dpkg -i來./ .deb)會臨時安裝這些軟件包,但它們仍然會被註冊爲「破損」(即,在這些衝突解決之前,您將被禁止使用甚至修改軟件包)。解決這些問題的唯一方法是通過包管理器。目前沒有其他可行的方式。

有趣的是,當試圖用工作替換以太網適配器的錯誤驅動程序時,我發現了這些無意的依賴關係。事實證明,大多數Linux發行版都不包含開發工具(因此,您不能僅僅在離線模式下進行「安裝」)。但是由於無法安裝軟件包,因爲開發者政策草率[循環依賴,自我依賴,dpkg在這些情況下不起作用],所以某些Linux版本可能會在某些平臺上永久中斷(如果互聯網連接不起作用)。

對此提出建議?我建議垃圾郵件開發者論壇向程序員請求嚴格的依賴關係策略:在運行自動依賴關係檢查之前,沒有任何模塊應該發佈給公衆(以避免自我依賴,這非常糟糕)。在循環依賴的情況下(即a依賴於b,b依賴於c,c依賴於a),應該在發佈之前將模塊合併爲一個模塊。無論文件大小如何,都無關緊要。沒有什麼比看起來是模塊化的系統更糟糕,但實際上模塊製造的問題比以往任何時候都要多。在這種情況下,非模塊化的「塊」策略應該是必須的。

外面的世界很複雜......只有人讓它更復雜......