如何从AUR安装包还需要依赖AUR包

时间:2017-05-18 19:23:53

标签: install archlinux pacman-package-manager

因此。我正在使用ArchLinux和i3窗口管理器(简而言之,没有适当的桌面环境)。我是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的主要仓库中不可用,但在AUR中存在。所以为什么pacman无法找到目标是有道理的。

验证我试过了:

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

是的,这是" gnome-perl"而其他依赖关系也是AUR的一部分,因此当" makepkg"告诉pacman安装它,pacman简单失败。

那么,我怎么想从AUR安装这样的软件包呢?这些软件包在很大程度上依赖于其他AUR软件包呢?

提前谢谢你。 如果我的想法是错的。请指导。再次感谢。

PS:我做了sudo pacman -Syyu,但没有运气,毕竟这些软件包不是主要仓库的一部分而且在AUR中,因此更新pacman mirrorlist和系统更新不应该修复它。

4 个答案:

答案 0 :(得分:2)

如果它对您有用,这是一个简单的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年......

shutter

答案 1 :(得分:2)

您可以通过指定下载选项-d两次来告诉Cower以递归方式下载AUR包的 AUR 依赖关系,例如-dd-d -d或{{ 1}}

来自--download --downloadman cower

如果插入 OPERATIONS -d, --download Download target. Pass this option twice to fetch uninstalled dependencies (done recursively). 会更清楚:将此选项传递两次以获取未安装的AUR依赖项(递归完成)。但公平Cower只处理AUR。 ;)

(Main Arch Repo依赖关系(非AUR)当然已由AUR命令在水下处理。)

安装它时,最好将所有AUR包下载到一个专用文件夹并保留在那里。 Cower会跟踪下载和安装软件包的位置。 (我的AUR套餐全部下载到makepkg,因为我是唯一的用户。)这完全取决于您的情况。

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

更新:

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

  • makepkg -sic

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

  • 然后首先cower -udd进入每个AUR 依赖关系的文件夹并运行cd(或您通常使用的任何选项)

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

不要忘记还有一个详细程度选项makepkg -sic,它还可以让您查看检查更新的所有其他程序包。不只是有更新的。

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

答案 2 :(得分:1)

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

我个人使用yaourt,它非常简单并自动解决依赖关系。

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

Yaourt Official Website

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

yaourt -S shutter

答案 3 :(得分:1)

您可以使用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