编译bash
2014-03-08 14:18
183 查看
今天在mips开发板上执行一个循环脚本,出现错误。
本来脚本在ubuntu主机上运行很正常,经过查找发现原来在busybox下为了提高效率运行的是dash,而它的脚本相对与bash有些改变,有些甚至怪异。都改了比较麻烦不如干脆直接编译bash来的快些。
首先在网上下载bash源码(官网的速度很慢,可以去csdn或者chinaunix上)bash-3.2.tar.gz
下载完成后解压进入源码目录
首先就是执行配置脚本:
选项 --without-bash-malloc ,指定bash不使用自带的malloc,而是使用glibc的malloc
配置完毕后make一下就生成了bash可执行文件,此时还比较大可以用strip减少体积:
然后把这个bash拷贝到 busybox的 bin 目录下,在脚本开头指定即可。
本来脚本在ubuntu主机上运行很正常,经过查找发现原来在busybox下为了提高效率运行的是dash,而它的脚本相对与bash有些改变,有些甚至怪异。都改了比较麻烦不如干脆直接编译bash来的快些。
首先在网上下载bash源码(官网的速度很慢,可以去csdn或者chinaunix上)bash-3.2.tar.gz
下载完成后解压进入源码目录
首先就是执行配置脚本:
$ ./configure --prefix=`pwd` --host=mipsel-linux --enable-static-link --without-bash-malloc选项 --enable-static-link ,指定bash为静态编译。
选项 --without-bash-malloc ,指定bash不使用自带的malloc,而是使用glibc的malloc
配置完毕后make一下就生成了bash可执行文件,此时还比较大可以用strip减少体积:
$ ls -lh bash -rwxrwxr-x 1 5.0M Mar 8 14:14 bash $ mipsel-linux-strip bash $ ls -lh bash -rwxrwxr-x 1 1.6M Mar 8 14:15 bash $ file bash bash: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, for GNU/Linux 2.4.0, stripped
然后把这个bash拷贝到 busybox的 bin 目录下,在脚本开头指定即可。
相关文章推荐
- Android编译出错/bin/bash: mkimage: command not found
- ubuntu中把dash修改为bash,以便编译时候用sh简单
- bash 编译文件夹
- bash基本语法及编译系统学习记录
- bash shell 监控 coffee, jade 脚本以便及时自动编译
- 转:解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录
- 下载编译安装bash
- Bash脚本:下载编译安装nginx
- 介绍linux下利用编译bash设置root账号共用的权限审计设置
- Android 7.1编译问题 FAILED: /bin/bash -c
- 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
- 使用deb-src包重新编译bash使之能够输出日志到rsyslog的local1
- 编译bash实现history的syslog日志记录
- linux下编译make文件报错“/bin/bash^M: 坏的解释器,使用grep快速定位代码位置
- 虚拟机linux环境下编译程序时出现 bash:gcc:command not found的解决
- 编译android出现 /bin/bash: jar: command not found; /bin/bash: javah: command not found解决办法
- Bash脚本 Vlc Android平台下载和编译
- 解决 linux下编译make文件报错“/bin/bash^M: 坏的解释器:没有那个文件或目录” 问题
- bash数组和字符串处理、yum命令详解及编译安装