目录

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

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

  1. 【嵌入式开发】 Linux Kernel 下载 配置 编译 安装 及 驱动简介

    作者 : 韩曙亮 转载请出名出处 : http://blog.csdn.net/shulianghan/article/details/38636827 一. Linux 内核简介 1. 内核功能简介 ...

  2. 文件系统层次结构标准和Linux上下载源代码配置编译安装

    一.文件系统层次结构标准 FHS_3.0 标准文档 /bin 存储一些二进制可执行命令文件, /usr/bin 也存放了一些基于用户的命令文件. /sbin 存储了很多系统命令, /usr/sbin ...

  3. openwrt开发教程之下载配置编译openwrt(MT7621A)

    什么是openwrt? openwrt可以被描述为一个嵌入式Linux发行版,openwrt的包管理器提供了一个完全可写的文件系统. openwrt是使用框架来构建应用程序的,对于用户来说,这意味着其 ...

  4. 基于cmake28来编译安装mysql服务配置解析

    cmake介绍:        cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译 ...

  5. 编译安装rabbitmq服务端

    有一种方式是:下载rabbitmq-server-generic-unix压缩包,是不用编译的.是已经编译好的源码了 下面介绍编译源码安装   总括: 需要以下步骤:   1.安装erlange.因为 ...

  6. 源码编译安装httpd服务

    1 概述 很多软件没有发布rpm包,而是直接发布了源码,好处是这样能兼容更多的平台,但是,用户需要对源码进行编译后安装.利用工具make将源码生成二进制文件. 本文主要讲解了对httpd进行编译安装. ...

  7. Net-snmp总结(二)-net-snmp配置编译安装

    一.下载net-snmp源码包 netsnmp的源码包可以到 net-snmp官网上去下载,http://www.net-snmp.org. 二.解压net-snmp源码包 把下载好的压缩包net-s ...

  8. dropbear编译安装及服务脚本编写

    编译安装 下载dropbear.并解压 # wget http://matt.ucc.asn.au/dropbear/releases/dropbear-2015.67.tar.bz2 # tar x ...

  9. Linux-Centos7源码编译安装Twemproxy服务

    1. 软件简单介绍 Twemproxy Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数.Twemproxy是由T ...

最新文章

  1. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)
  2. shell 中的return
  3. 今日直播 | 全国高校人工智能人才与科技莫干山论坛直播来袭!
  4. Zookeeper_安全认证讲解
  5. rapidjson的read和write的sample
  6. cocos2dx ios入口类_2.cocos2d-x 第一个项目
  7. 使用默认方法的界面演变–第一部分:方法
  8. oracle查询本身字符集,Oracle字符集问题总结
  9. 计算机输入输出c语言,计算机等级考试二级C语言讲义第三讲输入输出函数
  10. 一图胜千言,8 张图理解 Java
  11. 助力高校数字化建设,QQ小程序开发大赛正式启动
  12. CFileDialog用法详解
  13. 《陶哲轩实分析》——给读者的一点建议
  14. FFmpeg合并ts文件为mp4文件
  15. linux不可用于文件名的符号,Linux 文件名中包含特殊字符
  16. 【智能算法学习】JAYA算法
  17. 利用三轴加速器的计步测算方法
  18. OpenFlow协议初探——OpenFLow中的流和流表
  19. 报错:<generator object <genexpr> at 0x7fa9adc46eb0>
  20. 神兵利器——使用LINQ to SQL检索和操作数据库

热门文章

  1. NGUI之学习制作简单例子(一)
  2. php 自旋锁,自旋锁、排队自旋锁、MCS锁、CLH锁(转)
  3. OpenStack — Cinder
  4. 基于机器学习聚类算法寻找美国职业篮球联赛NBA中的超级强队
  5. 微信小程序根据性别判断显示不同的图片
  6. 一份心肌梗塞患者支架术后的出院诊断证明书
  7. html画布有的电脑显示不出来桌面,不在html5画布中显示图像(javascript)
  8. CIFAR10数据集训练及测试
  9. 安装 JPEG Toolbox
  10. mysql rrdtool_RRDtool下载