【问题标题】:How to install a package from AUR which further need dependent AUR packages如何从 AUR 安装需要依赖 AUR 包的包
【发布时间】:2017-10-18 18:27:32
【问题描述】:

所以。我正在使用带有 i3 窗口管理器的 ArchLinux(简而言之,没有合适的桌面环境)。我是 Arch Linux 新手

我正在尝试安装这个名为“shutter”的包,它可以帮助我截取屏幕截图。

现在,我尝试安装“快门”

sudo pacman -S shutter

不幸的是,pacman 存储库中没有快门(或者不管它叫什么,抱歉) 我知道它不可用,但我只是想尝试并继续尝试。

我知道它不可用的原因是它在 AUR 中列出。现在 AUR 中的包是主存储库中不存在的包。美好的。我从它的 git 下载包并尝试“制作”它。

git clone aur.blah.blah.shutter.git
cd shutter
makepkg -s

现在这是我遇到的错误。

[pc@PC shutter]$ makepkg -s
==> Making package: shutter 0.93.1-11 (Thu May 18 19:05:21 UTC 2017)
==> Checking runtime dependencies...
==> Installing missing dependencies...
[sudo] password for pc:
error: target not found: gnome-perl
error: target not found: perl-gnome2-wnck
error: target not found: perl-gtk2-imageview
error: target not found: perl-gtk2-unique
warning: skipping target: perl-xml-simple
==> ERROR: 'pacman' failed to install missing dependencies.

现在,我仔细查看了这个列表并意识到这些依赖包,例如 gnome-perl 和其他,它们本身在 pacman 的主 repo 中不可用,但存在于 AUR 中。因此,pacman 无法定位目标是有道理的。

验证我试过了:

[pc@PC shutter]$ sudo pacman -S gnome-perl
error: target not found: gnome-perl

所以是的,这个“gnome-perl”和其他依赖项也是 AUR 的一部分,因此当“makepkg”告诉 pacman 安装它时,pacman simple 失败。

那么,我应该如何从 AUR 安装这些进一步严重依赖其他 AUR 包的包?

提前谢谢你。 如果我的概念是错误的。请指导。再次感谢。

PS : 我做了 sudo pacman -Syyu,但运气不好,毕竟这些包不是主 repo 的一部分,并且在 AUR 中,所以更新 pacman 镜像列表和系统更新不应该修复它。

【问题讨论】:

    标签: installation archlinux pacman-package-manager


    【解决方案1】:

    您可能会发现一些有用的 AUR 包管理器。

    我个人用yaourt,很简单,自动解析依赖。

    安装非常简单,按照说明操作即可:

    Yaourt Official Website

    要安装一个包(及其所有依赖项),请运行:

    yaourt -S shutter
    

    【讨论】:

    • 感谢您的回复。我也读到了yaourt。但是我想在没有桌面环境(只有 i3wm)的情况下从头开始构建自己的 linux PC 的全部原因是为了了解事情是如何工作的。非常感谢您的帮助。但我想知道它是如何以微不足道的方式完成的。谢谢
    • 如果你在 AUR 中使用 pacman,那么你的做法几乎是正确的:使用 git clone <package> && cd <package> && makepkg -sri 构建和安装。当您遇到依赖问题时,只需对每个依赖重复。 yaourt 只是一个前端,它消除了一些乏味。
    【解决方案2】:

    你可以使用 Yaourt。

    您可以通过将存储库添加到您的 pacman.conf 来安装它

    sudo nano /etc/pacman.conf
    

    将此添加到“存储库”部分:

    [archlinuxfr]
    SigLevel = Never
    Server = http://repo.archlinux.fr/$arch
    

    更新 pacman 数据库并安装 yaourt

    sudo pacman -Sy yaourt
    

    现在你可以安装你的包了:yaourt shutter

    【讨论】:

    • 只使用 yay 而不是 yaourt
    【解决方案3】:

    如果它对您有用,这是一个简单的 bash 函数,它会尝试下载和安装软件包列表。当然它不做依赖解析,所以需要在依赖的包之前安装依赖。

    aur_manual_install() {
        [[ ! -d aur_packages ]] && mkdir aur_packages
        pushd aur_packages
        for PKG in "$@" ; do
            curl -o ${PKG}.tar.gz https://aur.archlinux.org/cgit/aur.git/snapshot/${PKG}.tar.gz
            tar zxvf ${PKG}.tar.gz
            rm ${PKG}.tar.gz
            pushd ${PKG}
            makepkg -csi --noconfirm
            popd
        done
        popd
        #rm -rf aur_packages # Uncomment if you want to clean up after install
    }
    

    使用示例(参数是要按顺序安装的包列表):

    aur_manual_install cower-git pacaur
    

    也许您想添加set -e以在出现错误等情况下停止。

    编辑 1:我发布的原始代码存在一些问题,因为它是从更大的脚本中提取的。

    编辑 2:我在尝试安装该软件包时取得了一些进展:

    aur_manual_install \
    gnome-perl gnome-vfs gnome-vfs-nosmb gnome-vfs-perl gnomecanvas-perl libbonobo libbonoboui libgnome libgnome-data libgnomeui orbit2 perl-gnome2-wnck perl-gtk2-imageview perl-gtk2-unique shutter
    

    (可能已经安装了其他软件包)。

    编辑 3:我不得不手动安装 gnome-vfs-nosmb,因为它与 gnome-vfs 冲突。

    编辑 4:终于!在填写完所有剩余的包裹后,我开始工作了。但要求开发人员更新到 GTK3 或类似版本可能是个好主意;哎呀,显然该项目最后一次更新是在 2014 年...

    【讨论】:

      【解决方案4】:

      您可以告诉 Cower 递归下载 AUR 包的 AUR 依赖项,方法是指定下载选项 -d 两次,如 -dd-d -d--download --download

      来自man cower OPERATIONS -d, --download Download target. Pass this option twice to fetch uninstalled dependencies (done recursively).

      如果 AUR 被插入会更清楚:传递此选项两次以获取卸载的 AUR 依赖项(递归完成)。但公平地说,Cower 只处理 AUR。 ;)

      (当然,makepkg 命令已经在水下处理了 Main Arch Repo 依赖项(非 AUR)。)

      安装时最好将所有 AUR 包下载到一个专用文件夹并保留在那里。 Cower 跟踪软件包的下载和安装位置。 (我的 AUR 包都下载到/home/myUsername/AUR-packages,因为我是唯一的用户。)不过这完全取决于你的情况。

      您首先必须在每个 AUR 依赖项的文件夹中运行 makepkg -sic(或任何选项)。然后在主 AUR 包的文件夹中。

      更新:

      轻松检查已安装的 AUR 包是否有更新:

      • cower -u

      • 然后将 -u-dd 结合起来检查并递归下载所有 AUR 依赖项:cower -udd(或立即执行此操作)

      • 然后首先 cd 进入每个 AUR dependency 的文件夹并运行 makepkg -sic(或您通常使用的任何选项)

      • 然后进入每个顶级/主 AUR 包的文件夹(非依赖项,您实际安装并想要使用的那个)并运行 makepkg -sic(或任何选项您通常使用)。

      别忘了还有一个详细选项-v,它还可以让您查看所有其他已检查更新的软件包。不仅仅是那些有更新的。

      您安装的 AUR 包越多,您就会意识到这需要通过一个或多个脚本来自动化。

      【讨论】:

      • 现在,最好使用Yay 而不是 Cower
      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-20
      • 2014-06-24
      • 1970-01-01
      相关资源
      最近更新 更多