使用ubuntu_base(版本16.04)为正点原子imx6ull 阿尔法开发板创建根文件系统,在进行第六十四章 Linux 多点电容触摸屏实验时没有hexdump命令,查看发现arm开发板文件系统下usr/bin中的常用linux命令功能比正常pc版ubuntulinux少了很多,因此希望安装util-linux工具包扩展常用命令。(util-linux:Linux 操作系统的标准实用工具包。) 安装方法如下: 网上下载util-linux-2.27.zip
unzip util-linux-2.27.zip mkdir util_linux cd util-linux-2.27 util-linux-2.27$ ./autogen.sh
最后出现如下提示: util-linux-2.27$ Now type './configure' and 'make' tocompile.
执行: util-linux-2.27$ ./configure --host=arm-linux-gnueabihf --prefix=/home/alientek/pc_work/tools/util_linux --without-python --without-tinfo--without-ncurses --disable-libuuid --disable-libblkid util-linux-2.27$ make
编译完成后,如果用sudo make install执行的话会出现下面的错误提示: ./libtool: line 1720:arm-linux-gnueabihf-ranlib: command not found
根据网上网友Crazy_BigBoy的解释: sudo make install。由于安装到系统目录/usr/local,所以加了sudo执行。就这步,出现了问题: ../libtool:line XXXX:arm-linux-ranlib command not found 在终端检查,发现arm-linux-ranlib可以在系统的PATH中找到,因为我已经把/optl/arm/4.3.2/bin添加到了PATH中。 那为什么还提示说找不到arm-linux-ranlib呢? 原因如下: 1.我添加arm交叉编译器目录到PATH中是放在//etc/profile里的,这是用户的配置文件,我的用户为yan。 2.执行make install时,加了sudo前缀,变成了root的工作环境和root的权限。 根据以上两点,make install是在root下做的,而arm-linux-ranlib在wmm用户的工作环境中才能找到。所以产生了这里的错误。 那我既要取得root权限,又要具有当前用户yan的工作环境,怎办呢? 解决如下: 执行make install之前,先用下sudo -i命令取得root权限。然后再执行make install。 su 和 sudo 的区别: 1.共同点:都是root用户的权限; 2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全取得root的权限和root的工作环境。 注意:sudo su切换到root时原用户的环境变量也一并丢失。应使用sudo -i 索性就手动添加PATH环境变量export $PATH=/opt/arm/4.3.2./binPATH 然后make install,安装成功
util-linux-2.27$ sudo -i 以root账户进入util-linux-2.27目录 util-linux-2.27#make install 完成安装 最好将原有的ubuntu_rootfs下的usr文件夹打包备份一下, 将util_linux/bin中的可执行文件拷贝到ubuntu_rootfs/usr/bin中就可以了。
exit退出root账户。
|