因为大陆这边对git的连接不是很好,所以我平时都是挂着代理下载和更新AUR,但并不是一直都有用,所以这次尝试从根本解决这个问题 : )
碰巧我在网上看到了这篇帖子,里面提到的方法是修改
/etc/makepkg.conf
使用自定义脚本通过镜像网站和axel多线程下载。
修改前
12 │ DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
13 │ 'ftp::/usr/bin/curl -qgfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
14 │ 'http::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
15 │ 'https::/usr/bin/curl -qgb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
16 │ 'rsync::/usr/bin/rsync --no-motd -z %u %o'
17 │ 'scp::/usr/bin/scp -C %u %o')
修改后
12 │ DLAGENTS=('file::/usr/bin/curl -qgC - -o %o %u'
13 │ 'ftp::/usr/bin/axel -n 15 -a -o %o %u'
14 │ 'http::/usr/bin/axel -n 15 -a -o %o %u'
15 │ 'https::/home/sky/Internet/fake_curl_makepkg %o %u'
16 │ 'rsync::/usr/bin/rsync --no-motd -z %u %o'
17 │ 'scp::/usr/bin/scp -C %u %o')
脚本文件(fake_curl_makepkg.sh)
1 │ #! /bin/bash
2 │ # 该脚本用于处理yay安装软件时,由github下载缓慢甚至无法下载的问题
3 │ # 检测域名是不是github,如果是,则替换为镜像网站,依旧使用curl下载
4 │ # 如果不是github则采用axel代替curl进行15线程下载
5 │ # 实验用链接:
6 │ # https://download.fastgit.org/beekeeper-studio/beekeeper-studio/releases/download/v1.6.11/beekeeper-studio_1.6.11_amd64.deb
7 │ # https://github.com/beekeeper-studio/beekeeper-studio/releases/download/v1.6.11/beekeeper-studio_1.6.11_amd64.deb
8 │
9 │ domin=`echo $2 | cut -f3 -d'/'`;
10 │ others=`echo $2 | cut -f4- -d'/'`;
11 │ case "$domin" in
12 │ "github.com")
13 │ url="https://github.com.cnpmjs.org/"$others;
14 │ echo "download from github mirror $url";
15 │ /usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o $1 $url;
16 │ ;;
17 │ *)
18 │ url=$2;
19 │ /usr/bin/axel -n 15 -a -o $1 $url;
20 │ ;;
21 │ esac
修改完并重新登录后,使用
$ pamac update
进行更新,会提示该脚本未安装:
正在准备...
正在克隆 electron-netease-cloud-music 构建文件...
生成 electron-netease-cloud-music 信息...
正在检查 electron-netease-cloud-music 依赖关系...
正在克隆 gnome-shell-extension-blur-my-shell-git 构建文件...
生成 gnome-shell-extension-blur-my-shell-git 信息...
正在检查 gnome-shell-extension-blur-my-shell-git 依赖关系...
正在同步软件包数据库...
正在更新 AUR...
正在解决依赖关系...
正在检查内部冲突...
构建 (2):
electron-netease-cloud-music 0.9.33-1 (0.9.32-1) AUR
gnome-shell-extension-blur-my-shell-git 27.r25.gb02e3e0-1 (27.r2.g6d1e992-1) AUR
编辑构建文件 : [e]
应用事务 ? [e/y/N] y
正在构建 electron-netease-cloud-music...
==> 正在创建软件包:electron-netease-cloud-music 0.9.33-1 (2022年01月29日 星期六 10时10分11秒)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系
==> 获取源代码...
==> 错误: 下载程序 fake_curl_makepkg 没有安装。
正在放弃...
错误: 构建 electron-netease-cloud-music 失败
希望各位Linux大佬可以指点一下我这个菜鸟[苦笑]
最近编辑记录 FallingSky_42 (2022-02-19 22:23:16)
离线
题外话,在开头提到的那篇帖子里,楼主有这样一段回话:
不是喷,你显然连最基础的东西都没搞明白,不适合用Manjaro这种系统,我觉得Ubuntu也不太合适,去用deepin吧,或者Windows。另外,你如果决心在Linux中坚持,首先习惯的就是开源社区的语言风格。祝好运。
老实说有点让人郁闷,宁愿节省两句话的时间也要让别人放弃使用这个系统,我相信这不是开源社区的语言风格,而是包容和互助。
离线
希望各位Linux大佬可以指点一下我这个菜鸟[苦笑]
我相信这不是开源社区的语言风格,而是包容和互助。
成为高手的第一步就是,不要因为你现在是一个菜鸟就心安理得地接受其他人的帮助。需要解决你的问题的人是你自己,能解决这些问题的人也只有你自己。
因为其他人没有帮助你就指责其他人,这不是互助,把自己放在需要被帮助的立场来等待其他人的帮助,而不愿意对自己遇到的问题负责,这不是互助。
`fake_curl_makepkg`在这里被引用,`'https::/home/sky/Internet/fake_curl_makepkg %o %u',我觉得首先你可能需要检查文件路径和可执行权限。根据你的描述,我认为有一种可能是你的文件名是fake_curl_makepkg.sh,而你写在配置文件中的路径是fake_curl_makepkg。
ecmascript是世界上最好的语言
离线
希望各位Linux大佬可以指点一下我这个菜鸟[苦笑]
我相信这不是开源社区的语言风格,而是包容和互助。
成为高手的第一步就是,不要因为你现在是一个菜鸟就心安理得地接受其他人的帮助。需要解决你的问题的人是你自己,能解决这些问题的人也只有你自己。
因为其他人没有帮助你就指责其他人,这不是互助,把自己放在需要被帮助的立场来等待其他人的帮助,而不愿意对自己遇到的问题负责,这不是互助。`fake_curl_makepkg`在这里被引用,`'https::/home/sky/Internet/fake_curl_makepkg %o %u',我觉得首先你可能需要检查文件路径和可执行权限。根据你的描述,我认为有一种可能是你的文件名是fake_curl_makepkg.sh,而你写在配置文件中的路径是fake_curl_makepkg。
倒也不是想指责什么,我也并不是认为大佬应该帮助菜鸟是理所应当,只是那个人的评论有点居高临下的味道。
文件名的问题已排除过,权限的问题已使用
$ chmod +x
赋权,其它的问题就不清楚了。
离线
文件名的问题已排除过
如果你的脚本是fake_curl_makepkg.sh那么你在makepkg.conf里写的应该是fake_curl_makepkg.sh而不是fake_curl_makepkg
ecmascript是世界上最好的语言
离线
文件名的问题已排除过
如果你的脚本是fake_curl_makepkg.sh那么你在makepkg.conf里写的应该是fake_curl_makepkg.sh而不是fake_curl_makepkg
是的,最开始是没有加“.sh”后缀的。
离线
就是说你现在脚本在/home/sky/Internet/fake_curl_makepkg,有执行权限,是吗
ecmascript是世界上最好的语言
离线
就是说你现在脚本在/home/sky/Internet/fake_curl_makepkg,有执行权限,是吗
是的,脚本可以直接使用。
离线
emmm....
https://gitlab.archlinux.org/pacman/pac … sh.in#L170
这就是makepkg报错的那段代码:
local program="${agent%% *}"
if [[ ! -x $program ]]; then
local baseprog="${program##*/}"
error "$(gettext "The download program %s is not installed.")" "$baseprog"
plainerr "$(gettext "Aborting...")"
exit 1 # $E_MISSING_PROGRAM
fi
ecmascript是世界上最好的语言
离线
有一个应该能解决你问题的方法是把它复制到/usr/bin去,你试一下?
ecmascript是世界上最好的语言
离线
对了你的makepkg可能和这个不一样。。。。要不你自己去看一下
ecmascript是世界上最好的语言
离线
有一个应该能解决你问题的方法是把它复制到/usr/bin去,你试一下?
厉害了,我下了个微软的 edge ,成功执行,并且那个位置依然得加上“.sh”后缀。看似简单的操作,但是我之前根本没想到,不过也挺费解的,虽然我之前是放在家目录,但是有执行权限啊。
最后,感谢大佬的指点,对占用了你的时间表示抱歉。
离线
好方法,学习了
但是,https://github.com.cnpmjs.org/,这个镜像站点最近挂了,用不了,最近好几个镜像都挂了。
可以尝试用
https://hub.fastgit.xyz/
https://hub.0z.gs/
离线
你这个问题我想了半天也只能想到可能是这么几种原因:
1. 你的路径不对,或者....总之就是因为各种原因你的路径不对。
2. 你的home的挂载选项有noexec。
3. manjaro的makepkg实现有问题,因为arch的makepkg实现(我贴的那个)是没问题的。
4. 钝角
就挺奇怪的(
ecmascript是世界上最好的语言
离线
好方法,学习了
但是,https://github.com.cnpmjs.org/,这个镜像站点最近挂了,用不了,最近好几个镜像都挂了。
可以尝试用
https://hub.fastgit.xyz/
https://hub.0z.gs/
感谢,多准备几个备用的是好事。
离线