如何从进一步需要依赖 AUR 包的 AUR 安装包
How to install a package from AUR which further need dependent AUR packages
所以。我正在使用 ArchLinux 和 i3 window 管理器(简而言之,没有合适的桌面环境)。我是 Arch 新手 Linux
我正在尝试安装这个名为 "shutter" 的软件包,它将帮助我进行屏幕截图。
现在,我尝试安装 "shutter"
sudo pacman -S shutter
不幸的是,shutter 在 pacman 存储库中不可用(或者不管它叫什么,抱歉)
我知道它不可用,但我只是想尝试并继续尝试。
我之所以知道它不可用是因为它被列在 AUR 中。现在 AUR 中的包是主存储库中不存在的包。美好的。我从它的git下载了这个包并尝试了"making"它。
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 镜像列表和系统更新应该不会修复它。
您可能会发现一些有用的 AUR 包管理器。
我个人使用yaourt,很简单,自动解决依赖。
安装非常简单,只需按照说明操作即可:
安装包(及其所有依赖项)运行:
yaourt -S shutter
您可以使用 Yaourt。
您可以通过将存储库添加到 pacman.conf
来安装它
sudo nano /etc/pacman.conf
将此添加到 'the REPOSITORIES' 部分:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
更新pacman数据库并安装yaourt
sudo pacman -Sy yaourt
现在你可以安装你的包了:yaourt shutter
如果对您有用,这是一个简单的 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 年...
你可以通过指定下载选项 -d
两次来告诉 Cower 递归下载 AUR 包的 AUR 依赖项 -dd
, [=12] =] 或 --download --download
来自 man cower
:
OPERATIONS
-d, --download
Download target. Pass this option twice to fetch uninstalled dependencies (done recursively).
如果插入 AUR
会更清楚:传递此选项两次以获取已卸载的 AUR 依赖项(递归完成)。但公平地说,Cower 只处理 AUR。 ;)
(当然,makepkg
命令已经在水下处理了主 Arch Repo 依赖项(非 AUR)。)
安装时最好将所有 AUR 包下载到一个专用文件夹并将它们留在那里。 Cower 跟踪包的下载和安装位置。 (我的 AUR 包都下载到 /home/myUsername/AUR-packages
因为我是唯一的用户。)不过这完全取决于你的情况。
您首先必须 运行 makepkg -sic
(或任何选项)在每个 AUR 依赖项的文件夹中。然后在主 AUR 包的文件夹中。
更新中:
轻松检查是否有已安装 AUR 包的更新:
cower -u
然后将 -u
与 -dd
结合起来检查并递归下载所有 AUR 依赖项:cower -udd
(或立即执行此操作)
然后首先 cd
进入每个 AUR dependency 和 运行 makepkg -sic
的文件夹(或任何选项你通常使用)
然后进入每个 top/main AUR 包的文件夹(非依赖性 你实际安装并想要使用的那个)和运行 makepkg -sic
(或您通常使用的任何选项)。
不要忘记还有一个详细选项 -v
,它还可以让您看到所有其他已检查更新的包。不只是有更新的。
您安装的 AUR 包越多,您就会意识到这需要一个或多个脚本来实现自动化。
所以。我正在使用 ArchLinux 和 i3 window 管理器(简而言之,没有合适的桌面环境)。我是 Arch 新手 Linux
我正在尝试安装这个名为 "shutter" 的软件包,它将帮助我进行屏幕截图。
现在,我尝试安装 "shutter"
sudo pacman -S shutter
不幸的是,shutter 在 pacman 存储库中不可用(或者不管它叫什么,抱歉) 我知道它不可用,但我只是想尝试并继续尝试。
我之所以知道它不可用是因为它被列在 AUR 中。现在 AUR 中的包是主存储库中不存在的包。美好的。我从它的git下载了这个包并尝试了"making"它。
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 镜像列表和系统更新应该不会修复它。
您可能会发现一些有用的 AUR 包管理器。
我个人使用yaourt,很简单,自动解决依赖。
安装非常简单,只需按照说明操作即可:
安装包(及其所有依赖项)运行:
yaourt -S shutter
您可以使用 Yaourt。
您可以通过将存储库添加到 pacman.conf
来安装它sudo nano /etc/pacman.conf
将此添加到 'the REPOSITORIES' 部分:
[archlinuxfr]
SigLevel = Never
Server = http://repo.archlinux.fr/$arch
更新pacman数据库并安装yaourt
sudo pacman -Sy yaourt
现在你可以安装你的包了:yaourt shutter
如果对您有用,这是一个简单的 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 年...
你可以通过指定下载选项 -d
两次来告诉 Cower 递归下载 AUR 包的 AUR 依赖项 -dd
, [=12] =] 或 --download --download
来自 man cower
:
OPERATIONS
-d, --download
Download target. Pass this option twice to fetch uninstalled dependencies (done recursively).
如果插入 AUR
会更清楚:传递此选项两次以获取已卸载的 AUR 依赖项(递归完成)。但公平地说,Cower 只处理 AUR。 ;)
(当然,makepkg
命令已经在水下处理了主 Arch Repo 依赖项(非 AUR)。)
安装时最好将所有 AUR 包下载到一个专用文件夹并将它们留在那里。 Cower 跟踪包的下载和安装位置。 (我的 AUR 包都下载到 /home/myUsername/AUR-packages
因为我是唯一的用户。)不过这完全取决于你的情况。
您首先必须 运行 makepkg -sic
(或任何选项)在每个 AUR 依赖项的文件夹中。然后在主 AUR 包的文件夹中。
更新中:
轻松检查是否有已安装 AUR 包的更新:
cower -u
然后将
-u
与-dd
结合起来检查并递归下载所有 AUR 依赖项:cower -udd
(或立即执行此操作)然后首先
cd
进入每个 AUR dependency 和 运行makepkg -sic
的文件夹(或任何选项你通常使用)然后进入每个 top/main AUR 包的文件夹(非依赖性 你实际安装并想要使用的那个)和运行
makepkg -sic
(或您通常使用的任何选项)。
不要忘记还有一个详细选项 -v
,它还可以让您看到所有其他已检查更新的包。不只是有更新的。
您安装的 AUR 包越多,您就会意识到这需要一个或多个脚本来实现自动化。