如果一台Riscv FreeBSD系统没有pkg怎么办?

FreeBSD使用pkg软件包管理系统,就像Ubuntu和Debian的apt软件包管理系统一样,非常简单方便。但是如果一台Riscv FreeBSD系统没有pkg怎么办? 

本来是这是几乎不会碰到的问题,FreeBSD 装好后就有pkg,但是如果用的是官方的FreeBSD riscv 映像文件,如

FreeBSD-14.1-RELEASE-riscv-riscv64.raw.xz

使用qemu启动这个映像的虚拟机,会发现没有pkg软件。同时还会发现没有curl和wget ,当然也不会有git ....

新版本连portsnap也没有了,所以想直接下载ports再编译安装也不可能了。

bsdconfig竟然也没法装,因为它需要pkg(没有找到riscv版本的pkg的包)

这时候应该怎么做呢? 

这时候只能想办法手工下载ports系统了,git和portsnap都不能用,那么就只有两种方法了:

1 使用ftp 

ftp ftp.freebsd.org ,然后到放置ports.txz的目录去下载

ftp
ftp> open 
(to) ftp.freebsd.org
Trying 192.50.199.248:21 ...
Connected to ftp.geo.freebsd.org.
220 This is ftp0.kwc.freebsd.org - hosted at KDDI Web Communications Inc in Tokyo, Japan.
Name (ftp.freebsd.org:root): anonymous
331 Please specify the password.
Password: 
230-
230-This is ftp0.kwc.FreeBSD.org, graciously hosted by KDDI Web Communications Inc.
230-
230-FreeBSD files can be found in the /pub/FreeBSD directory.
230-
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> cd /pub/FreeBSD/releases/riscv/riscv64/14.1-RELEASE
250 Directory successfully changed.
ftp> ls
229 Entering Extended Passive Mode (|||55848|)
150 Here comes the directory listing.
-rw-r--r--    1 ftp      ftp             9 May 31 13:13 BUILDDATE
-rw-r--r--    1 ftp      ftp            12 May 31 13:13 GITBRANCH
-rw-r--r--    1 ftp      ftp           783 May 31 10:15 MANIFEST
-rw-r--r--    1 ftp      ftp            13 May 31 13:13 REVISION
-rw-r--r--    1 ftp      ftp      228140756 May 31 10:15 base-dbg.txz
-rw-r--r--    1 ftp      ftp      171286268 May 31 10:15 base.txz
-rw-r--r--    1 ftp      ftp      59060488 May 31 10:15 kernel-dbg.txz
-rw-r--r--    1 ftp      ftp      26918004 May 31 10:15 kernel.txz
-rw-r--r--    1 ftp      ftp      51527060 May 31 10:15 ports.txz
-rw-r--r--    1 ftp      ftp      215062536 May 31 10:15 src.txz
-rw-r--r--    1 ftp      ftp      17009436 May 31 10:15 tests.txz
226 Directory send OK.

2 使用一台机器周转再scp拷贝过来

先下载到第三方机器,然后scp从第三方机器拷贝过来

事实上我就是这样做的。先用另一台机器到中科大下载prots包:

wget https://mirrors.ustc.edu.cn/freebsd/releases/riscv/14.2-RELEASE/ports.txz

把文件通过scp拿过来,然后把ports.txz文件解压到/usr/ports

cd ~/download/
scp skywalk@192.168.1.5:/home/skywalk/downlaod/ports.txz .
cd /
tar -xzvf ~/download/ports.txz

然后进入/usr/ports/ports-mgmt/pkg 目录,执行make 安装:

cd /usr/ports/ports-mgmt/pkg
make install 

好了,这样就把pkg安装好了,后面就可以用pkg来安装想要的软件了。

当然如果该软件没有riscv编译版本,那么还是只能用ports编译安装了。

3 极端坑的情况

在14.2 riscv64版本的虚拟镜像碰到了这样极端坑的情况,pkg无法使用,报错让用prots编译安装pkg。到ports里编译安装pkg,报错portconfig编译报错,说没有pkg_static .这样就卡住了,目前还没想到解决办法。

当然可以另外装一台FreeBSD riscv64 系统,然后把缺的东西scp过来。以后有空再尝试吧。

调试

ports安装pkg的时候报错env: /usr/local/sbin/pkg-static: No such file or directory

root@freebsd:/usr/ports/ports-mgmt/pkg make -j 6 install clean
--- config-conditional ---
--- limited-clean-depends-noflavor ---
--- config-conditional ---
--- do-config ---
--- limited-clean-depends-noflavor ---
--- limited-clean-depends ---
--- config-conditional ---
===> Building/installing portconfig as it is required for the config dialog
--- limited-clean-depends-noflavor ---
--- install ---
--- limited-clean-depends-noflavor ---
--- limited-clean-depends ---
--- install ---
--- check-license ---
--- security-check ---
--- fake-pkg.portconfig ---
===>   Registering installation for portconfig-0.6.1_1
--- check-license ---
===>  License BSD2CLAUSE accepted by the user
--- pkg-depends ---
--- fake-pkg.portconfig ---
env: /usr/local/sbin/pkg-static: No such file or directory
*** [fake-pkg.portconfig] Error code 127

make[3]: stopped in /usr/ports/ports-mgmt/portconfig
--- pkg-depends ---
===>   portconfig-0.6.1_1 depends on file: /usr/local/sbin/pkg - not found
*** [pkg-depends] Error code 6

make[3]: stopped in /usr/ports/ports-mgmt/portconfig
2 errors

make[3]: stopped in /usr/ports/ports-mgmt/portconfig
*** [install] Error code 2

make[2]: stopped in /usr/ports/ports-mgmt/portconfig

使用pkg命令的时候报错pkg: Error: Not Found

pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg from pkg+https://pkg.FreeBSD.org/FreeBSD:14:riscv64/quarterly, please wait...
pkg: Attempted to fetch https://pkg.FreeBSD.org/FreeBSD:14:riscv64/quarterly/Latest/pkg.pkg
pkg: Attempted to fetch https://pkg.FreeBSD.org/FreeBSD:14:riscv64/quarterly/Latest/pkg.txz
pkg: Error: Not Found
A pre-built version of pkg could not be found for your system.
Consider changing PACKAGESITE or installing it from ports: 'ports-mgmt/pkg'.

ports安装pkg时报错stopped in /usr/ports/ports-mgmt/portconfig

stopped in /usr/ports/ports-mgmt/portconfig
--- pkg-depends ---
===>   portconfig-0.6.1_1 depends on file: /usr/local/sbin/pkg - not found
*** [pkg-depends] Error code 6


 安装 /usr/ports/ports-mgmt/portconfig时报错

===>   portconfig-0.6.1_1 depends on file: /usr/local/sbin/pkg - not found

这不进入死循环了吗

尝试安装/usr/ports/devel/pkgconf

还是报错:make[2]: stopped in /usr/ports/ports-mgmt/portconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值