由于对我的 OpenBSD 机器的系统磁盘进行分区时发生错误,我现在空间不足/usr
。
openbsd$ df
Filesystem 512-blocks Used Avail Capacity Mounted on
/dev/sd0a 2057756 141352 1813520 7% /
/dev/sd0k 30699004 66384 29097672 0% /home
/dev/sd0d 5202236 746020 4196108 15% /tmp
/dev/sd0f 4122108 3002484 913520 77% /usr
/dev/sd0g 2057756 387016 1567856 20% /usr/X11R6
/dev/sd0h 11366780 552236 10246208 5% /usr/local
/dev/sd0j 12379516 4 11760540 0% /usr/obj
/dev/sd0i 3857212 2060552 1603800 56% /usr/src
/dev/sd0e 8218940 67776 7740220 1% /var
我试图安装更高版本的 GCC,结果出现错误No space left on device
。
openbsd$ cd /usr/ports/lang/gcc/6
openbsd$ doas make install
{{ ... thouands of lines omitted for brevity ... }}
tar: Unable to create gcc-6.4.0/install-sh: No space left on device
tar: Unable to create gcc-6.4.0/ylwrap: No space left on device
tar: Unable to create gcc-6.4.0/LAST_UPDATED: No space left on device
tar: Unable to create gcc-6.4.0/NEWS: No space left on device
tar: Unable to create gcc-6.4.0/MD5SUMS: No space left on device
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2555 'do-extract': @PATH=/usr/ports/pobj/gcc-6.4.0/bin:/usr/bin:/bin:/usr/sbin:/s...)
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2528 '/usr/ports/pobj/gcc-6.4.0/.extract_done')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2003 '/usr/ports/packages/amd64/all/gcc-6.4.0p0.tgz')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2465 '_internal-package')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2444 'package')
*** Error 1 in . (/usr/ports/infrastructure/mk/bsd.port.mk:2021 '/var/db/pkg/gcc-6.4.0p0/+CONTENTS')
*** Error 1 in /usr/ports/lang/gcc/6 (/usr/ports/infrastructure/mk/bsd.port.mk:2444 'install')
是否可以将目标文件构建到另一个目录,这样就不会占用大量空间/usr/ports
?我尝试过类似的方法cd /tmp/build && make -C /usr/ports/lang/gcc/6 install
,但中间文件仍然在所在目录中生成Makefile
。
答案1
您可以将该变量设置WRKOBJDIR
为应进行构建的目录。该变量的描述见bsd.port.mk(5)
。
例如,您可以使用
cd /usr/ports/lang/gcc/6
doas env WKOBJDIR=/tmp/build make install
/etc/mk.conf
或者如果您总是想在与 不同的位置编译端口,则设置变量 in /usr/ports/pobj
。
另请注意,lang/gcc/6
端口去掉了今天(2019-04-25)从 ports 树中删除,因为它已被 GCC 8 废弃。