准备的是 busybox-1.30.0.tar.bz2(体积小,又实用)选择的是一个最简单的文件系统,不带C库的,所以在编译busybox的时候就要把它编译为静态链接库的形式,就不需要依赖任何的动态链接库。
下载buysbox源码,下载地址:
我使用的版本是busybox-1.30.0
1.解压buysbox源码
# tar xvf busybox-1.30.0.tar.bz2
2.配置buysbox源码
在这里我们把busybox配置为静态编译,这样busybox在运行的时候就不需要额外的动态链接库了。
步骤:
# make menuconfig
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
详细步骤:
# cd busybox-1.30.0/
# make menuconfig
进入上述界面后选择 Setting ---> 进入里面 选到[ ] Build static binary (no shared libs) 按下空格变为[*]将模块驱动编译到内核中,后面就一路Esc退出。
3.编译和安装
make && make install
执行make的时候会吧busybox编译出来,执行make install 的时候会将busybox和相关的工具安装到源码目录下面的 _install目录下面。
进入到_install里面文件就是编译后的busybox了
其实这些文件都是链接文件,通过软链接的方式链接到了busybox。
Linux “tree”功能是,以树状图列当前出目录的所有文件,包括子目录下的文件。Linux默认是未安装“tree”命令的。
一般下载命令为sudo apt-get install tree
会有出错情况如:在Ubuntu中用apt-get安装软件,系统报出Unmet dependencies错误。 Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution)
解决方案:
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get -f upgrade
然后我们选择手动安装
#下载 (虚拟机下,也可在Windows下手动下载,然后拷贝到Ubuntu下执行解压安装)
wget http://mama.indstate.edu/users/ice/tree/src/tree-1.8.0.tgz
#解压
tar -zxvf tree-1.8.0.tgz
#进入目录
cd tree-1.8.0
#安装
sudo make install
#测试
tree
之前我们换源之后可能会造成一些乱码显示,这时解决方法为把源换回去用sudo apt-get update和sudo apt-get -f upgrade更新重启一下就好了
这些链接文件其实本质没有任何区别,唯一区别就是链接文件的名字,busybox里是通过第一个参数来判断执行的是哪个命令,比如说arch命令,就会通过这个来调用相关的函数。