我正在尝试安装在 QEMU 上运行的 Alpine Linux,但出现了以下错误(我用 标记了错误消息<===
):
localhost:~# setup-alpine
Available keyboard layouts:
...
Which timezone are you in? ('?' for list) [UTC]
* Starting busybox acpid ...
[ ok ]
* Starting busybox crond ...
[ ok ]
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] http://192.0.2.1:8080
wget: server returned error: HTTP/1.0 403 Forbidden <===
r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: f
Finding fastest mirror...
Warning! No mirror found <===
r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor
Enter mirror number (1-0) or URL to add (or r/f/e/done) [f]: r
/sbin/setup-apkrepos: line 30: divide by zero <===
Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]
* service sshd added to runlevel default
* Caching service dependencies ...
[ ok ]
ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
* Starting sshd ...
[ ok ]
Available disks are:
sda (107.4 GB ATA QEMU HARDDISK )
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
The following disk is selected:
sda (107.4 GB ATA QEMU HARDDISK )
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] sys
ERROR: unsatisfiable constraints: <===
sfdisk (missing): <===
required by: world[sfdisk] <===
syslinux (missing): <===
required by: world[syslinux] <===
localhost:~#
看到之后/sbin/setup-apkrepos:30
(这对应于这里) grep -rn wget /sbin/
,我发现我办公室的代理服务器 ( http://192.0.2.1:8080
) 返回403 Forbidden
当请求镜像列表时:
localhost:~# export http_proxy=http://192.0.2.1:8080; export https_proxy=http://192.0.2.1:8080; export ftp_proxy=http://192.0.2.1:8080
localhost:~# wget https://mirrors.alpinelinux.org/mirrors.txt
Connecting to 192.0.2.1:8080 (192.0.2.1:8080)
wget: server returned error: HTTP/1.0 403 Forbidden
localhost:~#
虽然我不是代理服务器的管理员,但是有没有什么解决方法呢?
答案1
您可以wget
通过将环境变量设置MIRRORS
为以下内容来绕过https://mirrors.alpinelinux.org/mirrors.txt,例如:
export MIRRORS='http://dl-cdn.alpinelinux.org/alpine/
http://uk.alpinelinux.org/alpine/
http://dl-2.alpinelinux.org/alpine/'
localhost:~# export MIRRORS='http://dl-cdn.alpinelinux.org/alpine/
> http://uk.alpinelinux.org/alpine/
> http://dl-2.alpinelinux.org/alpine/'
localhost:~# setup-alpine
...
HTTP/FTP proxy URL? (e.g. 'http://proxy:8080', or 'none') [none] http://192.0.2.1:8080
<=== OK
Available mirrors:
1) dl-cdn.alpinelinux.org
2) uk.alpinelinux.org
3) dl-2.alpinelinux.org
r) Add random from the above list
f) Detect and add fastest mirror from above list
e) Edit /etc/apk/repositories with text editor
Enter mirror number (1-3) or URL to add (or r/f/e/done) [f]: f
Finding fastest mirror...
0.17 http://dl-cdn.alpinelinux.org/alpine/ <=== OK
0.55 http://uk.alpinelinux.org/alpine/
0.52 http://dl-2.alpinelinux.org/alpine/
Added mirror dl-cdn.alpinelinux.org
Updating repository indexes... done.
Which SSH server? ('openssh', 'dropbear' or 'none') [openssh]
* rc-update: sshd already installed in runlevel `default'; skipping
* WARNING: sshd has already been started
Available disks are:
sda (107.4 GB ATA QEMU HARDDISK )
Which disk(s) would you like to use? (or '?' for help or 'none') [none] sda
The following disk is selected:
sda (107.4 GB ATA QEMU HARDDISK )
How would you like to use it? ('sys', 'data', 'lvm' or '?' for help) [?] sys
WARNING: The following disk(s) will be erased: <=== OK
sda (107.4 GB ATA QEMU HARDDISK )
WARNING: Erase the above disk(s) and continue? [y/N]: y
Creating file systems...
Installing system on /dev/sda3:
/mnt/boot is device /dev/sda1
100% ████████████████████████████████████████████==> initramfs: creating /boot/initramfs-virt
/boot is device /dev/sda1
Installation is complete. Please reboot.
localhost:~#
该解决方案推断自来源。