7

所以。我正在使用带有 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,但运气不好,毕竟这些包不是主仓库的一部分,并且在 AUR 中,所以更新 pacman 镜像列表和系统更新不应该修复它。

4

4 回答 4

3

您可以告诉 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。;)

(当然,主要的 Arch Repo 依赖项(非 AUR)已经由makepkg命令在水下处理。)

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

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

更新:

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

  • cower -u

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

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

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

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

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

于 2017-08-13T12:42:21.473 回答
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 年......

快门

于 2017-07-30T08:45:25.513 回答
1

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

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

它的安装非常简单,只需按照说明进行操作:

雅欧特官网

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

yaourt -S shutter
于 2017-05-20T01:56:00.520 回答
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

于 2017-05-23T11:25:22.367 回答