【问题标题】:Force my custom debian package to resolve R dependency from specific repository强制我的自定义 debian 包解决来自特定存储库的 R 依赖项
【发布时间】:2010-11-04 19:56:13
【问题描述】:

我创建了一个 ubuntu/debian 包,用于安装依赖于 R 的应用程序。安装时,我希望该包从位于以下位置的存储库中安装 R:

deb http://cran.uk.r-project.org/bin/linux/ubuntujaunty/

因为此存储库包含最新版本的 R。我已尝试将包从包 preinst 脚本添加到 sources.list 文件,但它似乎不起作用。

有什么想法可以强制使用此存储库吗?

【问题讨论】:

    标签: ubuntu repository debian package


    【解决方案1】:

    您真的不应该从preinst 脚本安装其他软件包。这使得aptdpkg 无法找出包的依赖关系。正确的方法是在debian/control 文件中将最新版本声明为依赖项:

    Depends: R (>= x.y)
    

    例如:

    Depends: libapr0 (>= 2.0.54)
    

    这可能意味着该软件包对于不添加其他存储库的用户也是可卸载的;您应该通过其他渠道通知他们其他存储库。或者您可以考虑将包包含在您的存储库中。

    【讨论】:

    • 我并不是说从 preinst 脚本实际安装包,只是添加包含最新版本 R 的另一个存储库。我的 preinst 脚本如下所示:#!/bin/sh # 添加新版本 R 的存储库 echo "deb cran.uk.r-project.org/bin/linux/ubuntu jaunty/" | sudo tee -a /etc/apt/sources.list sudo apt-get update 安装软件包后,R 仍然是从正常存储库下载的,但由于某种原因,sources.list 没有更改。
    • 我的 preinst 脚本似乎已经全部出现在上面的一行中,应该分成 4 行。
    【解决方案2】:

    您可能想查看 Synaptic 的强制版本功能(请参阅 http://linuxph.wordpress.com/2010/11/19/force-version-in-synaptic

    【讨论】:

    • 一些解释将有助于这个答案
    猜你喜欢
    • 2019-11-19
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 2016-01-15
    • 2020-09-19
    • 2018-08-01
    相关资源
    最近更新 更多