Linux From Scratch(LFS11.0)构建 LFS 系统 - Ncurses-6.2

Posted Lucifer三思而后行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux From Scratch(LFS11.0)构建 LFS 系统 - Ncurses-6.2相关的知识,希望对你有一定的参考价值。

Ncurses 软件包包含使用时不需考虑终端特性的字符屏幕处理函数库。

安装 Ncurses

解压软件包:

cd /sources
tar xf ncurses-6.2.tar.gz
cd ncurses-6.2

编译、检查并安装 Ncurses:

time { ./configure --prefix=/usr           \\
            --mandir=/usr/share/man \\
            --with-shared           \\
            --without-debug         \\
            --without-normal        \\
            --enable-pc-files       \\
            --enable-widec && make && make install;}

该软件包有测试套件,但只能在安装该软件包后才能运行!

许多程序仍然希望链接器能够找到非宽字符版本的 Ncurses 库。通过使用符号链接和链接脚本,诱导它们链接到宽字符库:

for lib in ncurses form panel menu ; do
    rm -vf                    /usr/lib/lib${lib}.so
    echo "INPUT(-l${lib}w)" > /usr/lib/lib${lib}.so
    ln -sfv ${lib}w.pc        /usr/lib/pkgconfig/${lib}.pc
done

最后,确保那些在构建时寻找 -lcurses 的老式程序仍然能够构建:

rm -vf                     /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" > /usr/lib/libcursesw.so
ln -sfv libncurses.so      /usr/lib/libcurses.so

删除一个 configure 脚本未处理的静态库:

rm -fv /usr/lib/libncurses++w.a

如果需要的话,安装 Ncurses 文档:

mkdir -v       /usr/share/doc/ncurses-6.2
cp -v -R doc/* /usr/share/doc/ncurses-6.2

上述指令没有创建非宽字符的 Ncurses 库,因为从源码编译的软件包不会在运行时链接到它。

然而,已知的需要链接到非宽字符 Ncurses 库的二进制程序都需要版本 5。如果您为了满足一些仅有二进制版本的程序,或者满足 LSB 兼容性,必须安装这样的库,执行以下命令再次构建该软件包:

make distclean
./configure --prefix=/usr    \\
            --with-shared    \\
            --without-normal \\
            --without-debug  \\
            --without-cxx-binding \\
            --with-abi-version=5 
make sources libs
cp -av lib/lib*.so.5* /usr/lib

安装完成后清理工作:

cd ..
rm -rf ncurses-6.2

本次分享到此结束啦~

如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持,你的支持就是我创作最大的动力。

❤️ 技术交流可以 关注公众号:Lucifer三思而后行 ❤️

以上是关于Linux From Scratch(LFS11.0)构建 LFS 系统 - Ncurses-6.2的主要内容,如果未能解决你的问题,请参考以下文章

Linux From Scratch(LFS11.0)构建 LFS 系统 - 清理系统

Linux From Scratch(LFS11.0)构建 LFS 系统 - GCC-11.2.0

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)收尾工作

Linux From Scratch(LFS11.0)构建 LFS 系统 - Diffutils-3.8

Linux From Scratch(LFS11.0)构建 LFS 系统 - Inetutils-2.1