在10.04 lucid上离线安装g ++会产生循环依赖

时间:2012-08-14 05:47:25

标签: linux ubuntu ubuntu-10.04

当我尝试安装离线g ++ - 4.4软件包时,它依赖于libstdc ++ 6-4.4-dev,当我尝试安装libstdc ++ 6-4.4-dev时,它依赖于g ++ - 4.4。

ocpe@blrkec241972d:~/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
    ocpe@blrkec241972d:~/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

3 个答案:

答案 0 :(得分:1)

尝试同时安装它们:

sudo dpkg -i ./*.deb

答案 1 :(得分:0)

这可能在某些情况下有效,但我最近在Linux Mint 13中遇到了同样的问题。建议的命令(sudo dpkg -i ./.deb)会暂时安装这样的软件包,但它们仍然会被注册为“破坏”(即在解决这些冲突之前,您被禁止使用甚至修改您的包)。解决这些问题的唯一方法是通过包管理器。目前没有其他办法可以做到。

有趣的是,当我尝试用一​​个有效的驱动程序替换以太网适配器的错误驱动程序时,我发现了这些无意义的依赖关系。事实证明,大多数Linux发行版都没有附带开发工具(因此您无法在离线模式下“进行安装”)。但是由于开发人员策略草率无法离线安装软件包[循环依赖,自我依赖,dpkg在这些情况下不起作用],某些Linux版本可能在某些平台上永久损坏(如果互联网连接不起作用) )。

连连呢?我建议将开发人员论坛发送垃圾邮件,以便从程序员那里请求严格的依赖策略:在对其运行自动依赖性检查之前,不应该向公众发布任何模块(以避免自我依赖,这是相当蹩脚的)。在循环依赖性的情况下(即a取决于b,b取决于c,c取决于a),应该要求在发布之前将模块合并为单个模块。这个文件有多大并不重要。没有比看似模块化的系统更糟糕的了,但事实上这些模块比他们解决的问题更多。在这种情况下,非模块化的“块”策略应该是必须的。

那里的世界很复杂......只有人们才会让它变得更加复杂......

答案 2 :(得分:0)

我这样做: sudo dpkg -i g ++ - 4.4_4.4.3-4ubuntu5.1_i386.deb libstdc ++ 6-4.4-dev_4.4.3-4ubuntu5.1_i386.deb

准备好我要把奶酪放入: http://packages.ubuntu.com/lucid/i386/g++-4.4/download http://packages.ubuntu.com/lucid/i386/libstdc++6-4.4-dev/download