busybox的下载、配置、编译、安装一条龙服务

来源:互联网转载 | 更新日期:2023-09-09 07:05:51

目录

1. busybox

2. 下载

2. 解压,配置

4. 编译

5. 安装


1. busybox

出场白:

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。

2. 下载

busybox - BusyBox: The Swiss Army Knife of Embedded Linux

2. 解压,配置

tar xjvf  busybox-1_30_0.tar.bz2

cd busybox-1_30_0

因为我的是交叉编译到arm上运行, 需要修改Makefile:

 

执行meke menuconfig, 设置静态编译

 

4. 编译

执行make -j6

报错:

Static linking against glibc, can't use --gc-sections
Trying libraries: crypt m resolv
Failed: -Wl,--start-group  -lcrypt -lm -lresolv  -Wl,--end-group
Output of:
arm-none-linux-gnueabi-gcc -Wall -Wshadow -Wwrite-strings -Wundef -Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function -Wunused-value -Wmissing-prototypes -Wmissing-declarations -Wno-format-urity -Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen -finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections -fno-guess-branch-probability -funsigned-char -sta-libgcc -falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-builtin-printf -Os -static -o busybox_unstripped -Wl,--sort-common -Wlsort-section,alignment -Wl,--start-group applets/built-in.o archival/lib.a archival/libarchive/lib.a console-tools/lib.a coreutils/lib.a coreutils/libcoreutils/lib.a debianutils/lib.a klibc-utils/lib.a eprogs/lib.a editors/lib.a findutils/lib.a init/lib.a libbb/lib.a libpwdgrp/lib.a loginutils/lib.a mailutils/lib.a miscutils/lib.a modutils/lib.a networking/lib.a networking/libiproute/lib.a networking/ud/lib.a printutils/lib.a procps/lib.a runit/lib.a selinux/lib.a shell/lib.a sysklogd/lib.a util-linux/lib.a util-linux/volume_id/lib.a archival/built-in.o archival/libarchive/built-in.o console-tools/builn.o coreutils/built-in.o coreutils/libcoreutils/built-in.o debianutils/built-in.o klibc-utils/built-in.o e2fsprogs/built-in.o editors/built-in.o findutils/built-in.o init/built-in.o libbb/built-in.o libprp/built-in.o loginutils/built-in.o mailutils/built-in.o miscutils/built-in.o modutils/built-in.o networking/built-in.o networking/libiproute/built-in.o networking/udhcp/built-in.o printutils/built-in.o cps/built-in.o runit/built-in.o selinux/built-in.o shell/built-in.o sysklogd/built-in.o util-linux/built-in.o util-linux/volume_id/built-in.o -Wl,--end-group -Wl,--start-group -lcrypt -lm -lresolv -Wl,---group
==========
libbb/lib.a(inet_common.o): In function `INET6_resolve':
inet_common.c:(.text.INET6_resolve+0x44): warning: Using 'getaddrinfo' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
coreutils/lib.a(mktemp.o): In function `mktemp_main':
mktemp.c:(.text.mktemp_main+0x8c): warning: the use of `mktemp' is dangerous, better use `mkstemp'
networking/lib.a(ipcalc.o): In function `ipcalc_main':
ipcalc.c:(.text.ipcalc_main+0x20c): warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libbb/lib.a(inet_common.o): In function `INET_resolve':
inet_common.c:(.text.INET_resolve+0x60): warning: Using 'gethostbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(inetd.o): In function `reread_config_file':
inetd.c:(.text.reread_config_file+0x234): warning: Using 'getservbyname' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
networking/lib.a(netstat.o): In function `ip_port_str':
netstat.c:(.text.ip_port_str+0x58): warning: Using 'getservbyport' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
util-linux/lib.a(nsenter.o): In function `nsenter_main':
nsenter.c:(.text.nsenter_main+0x19c): undefined reference to `setns'
coreutils/lib.a(sync.o): In function `sync_main':
sync.c:(.text.sync_main+0x70): undefined reference to `syncfs'
collect2: ld returned 1 exit status
Note: if build needs additional libraries, put them in CONFIG_EXTRA_LDLIBS.
Example: CONFIG_EXTRA_LDLIBS="pthread dl tirpc audit pam"
make: *** [busybox_unstripped] Error 1
book@book-virtual-machine:/work/busybox/busybox-1_30_0$
 

再次执行make menucofig, 去除掉nsenter 和sync 命令

# 去除nsenter

#去除sync

 

保存修改,再次编译:make -j6

成功:

book@book-virtual-machine:/work/busybox/busybox-1_30_0$ ls -l busybox
-rwxrwxr-x 1 book book 1990416 Oct  5 18:58 busybox
book@book-virtual-machine:/work/busybox/busybox-1_30_0$
 

5. 安装

执行make install

在busybox-1_30_0/_install 目录下安装成功:


book@book-virtual-machine:/work/busybox/busybox-1_30_0/_install$ ls -l
total 12
drwxrwxr-x 2 book book 4096 Oct  5 19:00 bin
lrwxrwxrwx 1 book book   11 Oct  5 19:00 linuxrc -> bin/busybox
drwxrwxr-x 2 book book 4096 Oct  5 19:00 sbin
drwxrwxr-x 4 book book 4096 Oct  5 19:00 usr

 

 

上一篇:Linux 网络之netlink 简介

下一篇:史上最全的数学建模竞赛介绍,大家不要错过哦!!!

相关文章

Copyright © 网站出售-网站交易平台 版权信息

网站备案号:黔ICP备2023004141号