我不喜欢Alpine Linux中内置的time
实用程序,并希望根据我的需求对其进行改进 - 我想编辑time.c
并将其编译为二进制文件。我已经完成了安装 gcc 的apk add build-base
并从 Github 复制粘贴了time.c
,但是当我执行gcc /tmp/time.c -o /tmp/time
时,我得到:
/tmp/time.c:34:10: fatal error: libbb.h: No such file or directory
#include "libbb.h"
^~~~~~~~~
所以我也复制粘贴了它,但它依赖于数十个头文件。我在某处看到我可能需要apk add alpine-sdk
,也许它也可以保证版本兼容性,所以我做到了,但 gcc 仍然看不到头文件。我应该提供一些-I
标志吗?
我真正需要做什么才能最终编译我的自定义time.c
?
PS:可能有一个 SO 标签用于time
但我找不到它。
UPD:我已经复制了整个include
文件夹,但它说:
In file included from /tmp/time.c:34:
include/libbb.h:406:42: error: 'ENABLE_FEATURE_VERBOSE' undeclared here (not in a function)
FILEUTILS_VERBOSE = (1 << 12) * ENABLE_FEATURE_VERBOSE, /* -v */
^~~~~~~~~~~~~~~~~~~~~~
但我甚至在整个 https://github.com/mirror/busybox 中也找不到它的定义
UPD:哦,不,它更复杂。
/ # ls -l `which time`
lrwxrwxrwx 1 root root 12 Jan 30 2019 /usr/bin/time -> /bin/busybox
似乎没有二进制time
这样的东西。
假设 GNU 时间功能是你所追求的,而 BusyBoxtime
不足以满足您的需求,只需安装最近在 Alpine 上提供的 GNU 时间包:
apk add time --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing
安装后,它将用 GNU 时间可执行文件替换/usr/bin/time
BusyBox 符号链接。