华为鲲鹏云服务最佳实践 Prelink-1.0 安装配置指南

举报
敏敏君主 发表于 2019/10/25 17:35:46 2019/10/25
【摘要】 Prelink是Red Hat 开发者 Jakub Jelinek 所设计的工具,正如其名字所示,Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具


1、简介

PrelinkRed Hat 开发者 Jakub Jelinek 所设计的工具,正如其名字所示,Prelink利用事先链接代替运行时链接的方法来加速共享库的加载,它不仅可以加快起动速度,还可以减少部分内存开销,是各种Linux架构上用于减少程序加载时间、缩短系统启动时间和加快应用程序启动的很受欢迎的一个工具。 

官方链接:http://people.redhat.com/jakub/prelink/prelink.pdf

类别:系统工具

2、基础环境

类别

子项

版本

获取地址(方法)

华为云

华为云

虚拟机

RC3916

--

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

image.png

解压prelink-20130503.tar.bz2

tar   -jxvf prelink-20130503.tar.bz2

进入prelink

cd   prelink

./configure   --build=arm --host=arm --target=mips

make

make   install

输出如下:

image.png

配置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

image.png

测试结果:命令可以正常使用。

Prelink工具的使用非常简单,对一个系统来说可能要花几分钟或者十几分钟。一般来说我们不用在命令行中直接指定ELF文件的方式,而是将需要Prelink的文件写到配置文件/etc/prelink.conf中,然后使用下面的命令即可:

#   prelink -avmR

如果你要取消已经做了的Prelink也非常简单,运行:

#   prelink -au

Prelink常用的选项含义如下:
-a 对所有的文件进行Prelink,包括/etc/prelink.conf文件中指定目录下的所有程序
-m
节省虚拟定址分配,在有许多程序需要连接时使用
-f 
重新强制预连接已经连接的程序,主要用于更新连接数据时使用
-R 
在给库指定地址时,使用随机地址,这有利于提高系统安全以防缓冲区溢出
-u 
取消已做的预连接




【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。