因此。我正在使用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和系统更新不应该修复它。答案 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年......
答案 1 :(得分:2)
您可以通过指定下载选项-d
两次来告诉Cower以递归方式下载AUR包的 AUR 依赖关系,例如-dd
,-d -d
或{{ 1}}
来自--download --download
:
man 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 -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