华为鲲鹏云服务最佳实践 Prelink-1.0 安装配置指南
1、简介
Prelink是Red Hat 开发者 Jakub Jelinek 所设计的工具,正如其名字所示,Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。
官方链接:http://people.redhat.com/jakub/prelink/prelink.pdf
类别:系统工具
2、基础环境
类别 | 子项 | 版本 | 获取地址(方法) |
华为云 华为云 | 虚拟机 | RC3(916) | -- |
OS | CentOS | 7.6.1810 | |
Kernel | 4.14 | ||
软件包 | Prelink-1.0 |
3、依赖安装
yum install -y elfutils elfutils-libelf-devel-static libselinux-static glibc-static gcc bzip2 |
4、组件编译安装
准备prelink源码包。
从Fedora获取包含源码的rpm包:
wget https://kojipkgs.fedoraproject.org//vol/fedora_koji_archive00/packages/prelink/0.5.0/1.fc19/src/prelink-0.5.0-1.fc19.src.rpm |
因为从rpm包编译有困难,所以我们打开rpm包只拿里面的源码。
rpm2cpio prelink-0.5.0-1.fc19.src.rpm | cpio –idmv |
解压prelink-20130503.tar.bz2
tar -jxvf prelink-20130503.tar.bz2 |
进入prelink:
cd prelink ./configure --build=arm --host=arm --target=mips make make install |
输出如下:
配置prelink.conf文件:
vim /etc/prelink.conf(文件是新建的) # This config file contains a list of directories both with binaries # and libraries prelink should consider by default. # If a directory name is prefixed with `-l ', the directory hierarchy # will be walked as long as filesystem boundaries are not crossed. # If a directory name is prefixed with `-h ', symbolic links in a # directory hierarchy are followed. # Directories or files with `-b ' prefix will be blacklisted. # `-c ' is used to source additional config file snippets. -l /opt/lib -l /opt/bin -l /opt/qte/lib |
其中以”#”开头的行为注释,正如注释中所解释的,下面列出的文件目录分别可以有”-l”, “-h”和”-b”开头,”-l”和“-h”区分是否包括符号连接类型的目录,”-b”指黑名单,即应该排除出去的部分。
5、系统配置
无
6、测试
测试内容:查看是否安装成功。
prelink -V |
测试结果:命令可以正常使用。
Prelink工具的使用非常简单,对一个系统来说可能要花几分钟或者十几分钟。一般来说我们不用在命令行中直接指定ELF文件的方式,而是将需要Prelink的文件写到配置文件/etc/prelink.conf中,然后使用下面的命令即可:
# prelink -avmR |
如果你要取消已经做了的Prelink也非常简单,运行:
# prelink -au |
Prelink常用的选项含义如下:
-a 对所有的文件进行Prelink,包括/etc/prelink.conf文件中指定目录下的所有程序
-m节省虚拟定址分配,在有许多程序需要连接时使用
-f 重新强制预连接已经连接的程序,主要用于更新连接数据时使用
-R 在给库指定地址时,使用随机地址,这有利于提高系统安全以防缓冲区溢出
-u 取消已做的预连接
- 点赞
- 收藏
- 关注作者
评论(0)