Linux下源码编译安装详解(3)

2.configure脚本常用的选项:

--help获取./configure脚本帮助 --prefix=: 指定安装路径;多数程序都有默认安装路径; --sysconfidr=: 指定配置文件安装路径; --with-PACKAGE[=ARG]:在自由软件社区里,有使用已有软件包和库的优秀传统.当用'configure'来配置一个源码树时, 可以提供其他已经安装的软件包的信息 --without-PACKAGE:有时候你可能不想让你的软件包与系统已有的软件包交互。例如,你可能不想让你的新编译器使用 GNU ld --enable-FEATURE:一些软件包可能提供了一些默认被禁止的特性,可以使用'--enable-FEATURE'来起用它 --disable-EEATURE:关闭指定的默认特性

3.编译安装源程序方法:

1)、展开源代码,找INSTALL、README;不存在此类文件时,找项目官方文档;

2)、根据安装说明执行安装操作;

3.程序安装于专用目录时,安装后的配置:

1)、导出二进制程序所在路径至PATH环境中

# export PATH=/usr/local/nginx/sbin:$PATH 实现永久有效的办法:                 /etc/profile.d/*.sh

2)、导出库文件给OS

OS查找库文件方法:根据/etc/ld.so.conf配置文件指定的路径搜索,或搜索/lib, /lib64, /usr/lib, /usr/lib64,把查找到的所有的库文件路径和其名称映射关系保存为一个缓存文件/etc/ld.so.cache;

/etc/ld.so.conf配置文件有其它组成部分:/etc/ld.so.conf.d/*.conf

假设nginx安装于/usr/local/nginx,此目录中有其库文件子目录lib,导出此目录中库文件:

(1)新建文件/etc/ld.so.conf.d/nginx.conf,在文件添加如下行:

/usr/local/nginx/lib

(2) 运行命令:ldconfig

ldconfig的主要用途:

默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。

搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。

缓存文件默认为/etc/ld.so.cache,该文件保存已排好序的动态链接库名字列表。

ldconfig通常在系统启动时运行,而当用户安装了一个新的动态链接库时,就需要手工运行这个命令。

常用选项:

-v: 用此选项时,ldconfig将显示正在扫描的目录及搜索到的动态链接库,还有它所创建的连接的名字. -p: 显示当前OS已经加载到的所有库文件名称及其文件所在路径的映射关系;

ldconfig需要注意的地方:

(a)、往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf文件的,但是添加完后需要调用下ldconfig,不然添加的library会找不到。

(b)、如果添加的library不在/lib和/usr/lib里面的话,就一定要修改/etc/ld.so.conf文件,往该文件追加library所在的路径,然后也需要重新调用下ldconfig命令。比如在安装mysql的时候,其库文件/usr/local/mysql/lib,就需要追加到/etc/ld.so.conf文件中。命令如下:

# echo "/usr/local/mysql/lib" >> /etc/ld.so.conf # ldconfig -v | grep mysql

(c)、如果添加的library不在/lib或/usr/lib下,但是却没有权限操作写/etc/ld.so.conf文件的话,这时就需要往export里写一个全局变量LD_LIBRARY_PATH,就可以了。

(3)、帮助文件导出

man命令搜索特定路径查找手册页文件,这些路径是定义在/etc/man.config中的MANPATH参数所指定的路径下的;

新增办法:编辑/etc/man.config文件,新增一个MANPATH参数,其值为新安装程序的man手册所在的目录;

            /usr/local/nginx/share/man/{man1,man8}             man -M /path/to/man KEYWORD

(4)、头文件导出

有些程序安装后会生成对自己拥有库文件调用接口相关头文件系统查找头文件的路径为/usr/include

导出独立安装应用程序的头文件方法:创建链接至/usr/include下即可;

例如:

/usr/local/nginx/include # ln -sv /usr/local/nginx/include/* /usr/include/ # ln -sv /usr/local/nginx/include /usr/include/nginx

perl源程序的编译安装方法:

    (1) perl Makefile.in     (2) make     (3) make install

本文永久更新链接地址

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/14361.html