1、 包管理器
包之间:可能存在依赖关系,甚至循环依赖
解决依赖包管理工具:yum(rpm包管理器的前端工具)
2、 库文件
查看二进制程序所依赖的库文件:
#ldd /PATH/TO/BINARY_FILE
管理及查看本机装载的库文件:
#ldconfig(安装程序一般都带有一些需要的库文件,要把相应的库文件配置于/etc/ld.so.conf.d/文件目录中以conf结尾的文件中,具体参考下面库的配置文件示例,然后用ldconfig命令加载进系统)
#/sbin/ldconfig -p或者#ldconfig -p:显示本机已经缓存的所有可用库文件名及文件路径映射关系
配置文件:/etc/ld.so.conf, /etc/ld.so.conf.d/*.conf
缓存文件:/etc/ld.so.cache
库的配置文件:
[root@centos7 ~]# ll /etc/ld.so.conf
-rw-r–r–. 1 root root 28 Feb 27 2013 /etc/ld.so.conf
[root@centos7 ~]# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
[root@centos7 ~]# ll /etc/ld.so.conf.d
total 16
-rw-r–r–. 1 root root 19 Mar 5 2015 dyninst-x86_64.conf
-r–r–r–. 1 root root 63 Nov 19 2015 kernel-3.10.0-327.el7.x86_64.conf
-rw-r–r–. 1 root root 17 Jun 10 2014 libiscsi-x86_64.conf
-rw-r–r–. 1 root root 17 Nov 21 2015 mariadb-x86_64.conf
[root@centos7 ~]# cd /etc/ld.so.conf.d
[root@centos7 ld.so.conf.d]# cat mariadb-x86_64.conf
/usr/lib64/mysql,相关的路径信息
[root@centos7 ld.so.conf.d]# ll /usr/lib64/mysql/
total 3064,如下是MySQL要用到的库文件
lrwxrwxrwx. 1 root root 24 Jul 21 08:29 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0
-rwxr-xr-x. 1 root root 3133544 Nov 21 2015 libmysqlclient.so.18.0.0
3、程序包管理器:
功能:将编译好的应用程序的各组成文件打包一个或几个程序包文件,从而方便快捷地实现程序包的安装、卸载、查询、升级和校验等管理操作
1)、包文件组成 ( 每个包独有)
RPM包内的文件
RPM的元数据,如名称,版本,依赖性,描述等安装或卸载时运行的脚本
2 、数据库( 公共)
程序包名称及版本
依赖关系
功能说明
包安装后生成的各文件路径及校验码信息
4、管理程序包的方式:
使用包管理器:rpm
使用前端工具:yum, dnf
有多种获取程序包的途径
5、rpm包管理
CentOS 系统上使用rpm命令管理程序包,包括安装、卸载、升级、查询、校验、数据库维护
1)、安装(安装的程序是按照组成信息的类别分门别类的安装到不同的目录中去,可以使用#rpm -ql 包名,查看程序的具体安装路径):
rpm {-i|–install} [install-options] PACKAGE_FILE…
-v: verbose,显示详细的安装过程信息
-h: 以# 显示程序包管理执行进度
rpm -ivh PACKAGE_FILE …常用格式
[install-options]:
–test: 测试安装,但不真正执行安装,dry run 模式
示例# rpm -ivh –test PACKAGE_FILE …
–nodeps:忽略依赖关系,但是装上并不能使用,除非装上依赖的相关包
–replacepkgs | replacefiles :重新覆盖安装包/文件(后者是个别文件的覆盖,比如要安装一个包,但是系统因其他包的安装已安装有此包中的个别文件,安装会提示是否覆盖,若要安装此包,可以使用replacefiles选项)示例# rpm -ivh –replacepkgs PACKAGE_FILE …
–nosignature: 不检查来源合法性
–nodigest:不检查包完整性
–noscipts:全不执行程序包如下脚本片断(程序一般带有一些脚本,默认情况下运行这些脚本)
%pre: 安装前脚本即是在安装前运行脚本,–nopre选项即不执行安装前脚本
%post: 安装后脚本,–nopost
%preun: 卸载前脚本,–nopreun
%postun: 卸载后脚本,–nopostun
2)、升级:
rpm {-U|–upgrade} [install-options] PACKAGE_FILE …
rpm {-F|–freshen} [install-options] PACKAGE_FILE …
upgrade :安装有旧版程序包,则“升级”;如果不存在旧版程序包,则“安装”
freshen :安装有旧版程序包,则“升级”;如果不存在旧版程序包,则不执行升级操作
rpm -Uvh PACKAGE_FILE …
rpm -Fvh PACKAGE_FILE …常用格式
–oldpackage:降级
示例# rpm -ivh –oldpackage 旧PACKAGE_FILE …
–force:强行升级,包括重新覆盖安装也需要此命令的配合
升级注意项:
(1)不要对内核做升级操作;Linux 支持多内核版本并存,因此可直接安装新版本内核
(2)如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件并不会直接覆盖老版本的配置文件,而把新版本的文件重命名(FILENAME.rpmnew)
[root@centos7 ~]# cd /run/media/root/CentOS\ 7\ x86_64/Packages/
[root@centos7 Packages]# ll kernel*
-r–r–r–. 2 root root 34633276 Nov 25 2015 kernel-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 2419288 Nov 25 2015 kernel-abi-whitelists-3.10.0-327.el7.noarch.rpm
-r–r–r–. 2 root root 36332428 Nov 25 2015 kernel-debug-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 11535248 Nov 25 2015 kernel-debug-devel-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 11470988 Nov 25 2015 kernel-devel-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 14064548 Nov 25 2015 kernel-doc-3.10.0-327.el7.noarch.rpm
-r–r–r–. 2 root root 3326108 Nov 25 2015 kernel-headers-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 2498912 Nov 25 2015 kernel-tools-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 2417876 Nov 25 2015 kernel-tools-libs-3.10.0-327.el7.x86_64.rpm
-r–r–r–. 2 root root 2414176 Nov 25 2015 kernel-tools-libs-devel-3.10.0-327.el7.x86_64.rpm
例如:rpm命令升级此内核版本时将删除旧版本#rpm -F/U kernel-3.10.0-427.el7.x86_64.rpm,因为内核十分重要,所以不推荐升级或者强行升级
一般直接安装就行,因为Linux系统支持多个内核#rpm -ivf kernel-3.10.0-427.el7.x86_64.rpm –force,因为是内核文件,所以这里不是覆盖安装,是另外又安装了一个内核文件
启动菜单的配置文件是/boot/grub/grub.conf,一般不要随便更改以防机器不能正常启动
3)、包查询
rpm {-q|–query} [select-options] [query-options]
[select-options]
-a: 所有包
-f: 查看指定的文件由哪个程序包安装生成
-p rpmfile:针对尚未安装的程序包文件做查询操作,例如-qpl选项查看还未装程序包文件(与程序包名不一样,例如tree是程序包名,而tree-1.6.0-10.el7.x86_64.rpm是tree程序包文件名,使用-p选项要使用的是程序包文件名)装后会生成那些文件
–whatprovides CAPABILITY:查询指定的CAPABILITY(例如bash、tree等等)由哪个包所提供
–whatrequires CAPABILITY:查询指定的 CAPABILITY被哪个包所依赖
rpm2cpio 包文件| cpio –itv 预览包内文件
[root@centos7 ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm | cpio -itv
-rwxr-xr-x 1 root root 62768 Jun 9 2014 ./usr/bin/tree
drwxr-xr-x 2 root root 0 Jun 9 2014 ./usr/share/doc/tree-1.6.0
-rw-r–r– 1 root root 18009 Aug 12 2004 ./usr/share/doc/tree-1.6.0/LICENSE
-rw-r–r– 1 root root 4628 Jun 24 2011 ./usr/share/doc/tree-1.6.0/README
-rw-r–r– 1 root root 4100 Jun 24 2011 ./usr/share/man/man1/tree.1.gz
177 blocks
rpm2cpio 包文件| cpio –idv “*.conf” 释放包内文件
[root@centos7 ~]# rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -id ./usr/bin/tree
在当前目录下解包生成tree包的./usr/bin/tree
[root@centos7 ~]# cd usr
[root@centos7 usr]# ls
bin
[root@centos7 usr]# cd bin
[root@centos7 bin]# ls
tree
可以部分的修复包安装文件的缺失,而不必要全覆盖安装(比如不小心删除了tree包的/usr/bin/tree安装文件,把此处的tree复制过去就行了[root@centos7 bin]#cp tree /usr/bin/ )
[query-options]
–changelog:查询rpm包的changelog即是版本更新日志
-c: 查询程序的配置文件
-d: 查询程序的文档
-i: information,包的各种详细信息,比如安装时间、版本、发行方等等信息
-l: 查看指定的程序包安装后生成的所有文件
–scripts:程序包自带的脚本片断,但是并不是所有的程序包都有
-R: 查询指定的程序包所依赖的CAPABILITY
–provides: 列出指定程序包所提供的CAPABILITY
4)、卸载:
rpm {-e|–erase} [–allmatches] [–nodeps] [–noscripts] [–notriggers] [–test] PACKAGE_NAME …
5)、包校验,查看包的安装文件相关信息是否改变
rpm {-V|–verify} [select-options] [verify-options]
S file Size differs
M Mode differs (includes permissions and file type)
5 digest (formerly MD5 sum) differs
D Device major/minor number mismatch
L readLink(2) path mismatch
U User ownership differs
G Group ownership differs
T mTime differs
P capabilities differ
例如#rpm -V tree,返回信息显示相关信息的改变
6)、包校验
包来源合法性验正及完整性验正:
完整性验正:SHA256
来源合法性验正:RSA
公钥加密:
对称加密:加密、解密使用同一密钥
非对称加密:密钥是成对儿的
public key: 公钥,公开所有人
secret key: 私钥, 不能公开
导入所需要公钥:
rpm -K|checksig rpmfile 检查包的合法、完整性、签名等等,此检测能力依赖于下面导入的检验文本文件
rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
CentOS 7发行版光盘提供:RPM-GPG-KEY-CentOS-7
rpm -qa gpg-pubkey*,查询/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7检验文本文件的安装
[root@centos7 ~]# rpm -K tree-1.6.0-10.el7.x86_64.rpm
tree-1.6.0-10.el7.x86_64.rpm: rsa sha1 (md5) pgp md5 OK
[root@centos7 ~]# rpm -qa gpg-pubkey*
gpg-pubkey-f4a80eb5-53a7ff4b
[root@centos7 ~]# rpm -qi gpg-pubkey-f4a80eb5-53a7ff4b查看此检验文本文件的信息
[root@centos7 ~]# rpm -e gpg-pubkey-f4a80eb5-53a7ff4b卸载此检验文本文件
7)、rpm 数据库(包校验数据来源,查看包的安装文件相关信息是否改变、安装及卸载历史信息)
数据库重建:/var/lib/rpm
rpm {–initdb|–rebuilddb}
initdb :初始化
如果事先不存在数据库,则新建之,否则,不执行任何操作
rebuilddb :重建
无论当前存在与否,直接重新创建数据库
例如:[root@centos7 rpm]# rpm –initdb
[root@centos7 rpm]# rpm –rebuilddb
但是恢复重建的数据库信息与原来的不再一样
6、 yum(其是依赖于rpm的)
1)、yum配置文件
yum repository:yum repo(yum仓库),存储了众多rpm 包及包的相关的元数据文件(放置于特定目录repodata)
文件服务器:
ftp://
http://
file:///
yum 客户端配置文件:
/etc/yum.conf :为所有仓库提供公共配置,一般不做更改
/etc/yum.repos.d/*.repo :为仓库的指向提供配置
仓库指向的定义:
[repositoryID]
name=Some name for this repository,yum仓库描述
baseurl=url://path/to/repository/,yum仓库路径,支持上述三种路径
enabled={1|0},0表示禁用,1表示启用,可以不写表示启用,但是写错enabled会造成禁用
gpgcheck={1|0},此行不写要检测,0是不检测包,1是检查包
gpgkey=URL
此外假如系统上已经装有检查文本文件/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7,相当于以上两项
enablegroups={1|0},包组
failovermethod={roundrobin|priority},优先级-(默认为:roundrobin,意为随机挑选; cost= 默认为1000)
2)、yum 命令的用法
yum [options] [command] [package …]
①、显示仓库列表:
yum repolist [all|enabled|disabled]
②、显示程序包:
yum list
# yum list [all | glob_exp1] [glob_exp2] […]
# yum list | less
# yum list {available|installed|updates} [glob_exp1][…]
③、安装程序包(centos7上yum支持补全,因为其bash版本更高):
yum install package1 [package2] […]
yum reinstall package1 [package2] […] ( 重新安装)
④、升级程序包:
yum update [package1] [package2] […]
yum downgrade package1 [package2] […] ( 降级)
⑤、检查可用升级:
yum check-update
⑦、卸载程序包:
yum remove | erase package1 [package2] […]
#rpm -e rpm –nodeps,删除rpm后yum不可使用,并且只能使用救援模式安装rpm
此外#rpm -e rpm
#rpm -e rpm –force
#yum remove rpm因为依赖性问题,并不能删除rpm
⑧、查看程序包信息information:
yum info […]
#yum info tree类似于#rpm -qi tree
⑨、查看指定的特性( 可以是某文件)是由哪个程序包所提供:
yum provides | whatprovides feature1 [feature2] […],类似于rpm的-qf选项
[root@centos7 ~]# rpm -qf /bin/cat
[root@centos7 ~]# yum provides /bin/cat
⑩、清理本地缓存(yum缓存在主配置文件中有说明即是#cat /etc/yum.conf有相关说明):
安装程序包时,下载的包文件存放于cachedir=/var/cache/yum/$basearch/$releasever中,其中$basearch是硬件架构,$releasever是操作系统版本号
yum clean [ packages | metadata | expire-cache |rpmdb | plugins | all ]
[root@centos7 ~]# cd /var/cache
[root@centos7 cache]# ls
abrt-di cups fontconfig gdm ibus ldconfig libvirt man PackageKit realmd yum
[root@centos7 cache]# cd yum
[root@centos7 yum]# ls
x86_64
[root@centos7 yum]# cd x86_64/
[root@centos7 x86_64]# du -sh .
834M .
[root@centos7 x86_64]# yum clean all
Loaded plugins: fastestmirror, langpacks
Cleaning repos: base
Cleaning up everything
Cleaning up list of fastest mirrors
[root@centos7 x86_64]# du -sh .
4K .
⑾、构建缓存:
yum makecache
[root@centos7 x86_64]# yum makecache,其实在下载安装包文件时也就会生成缓存
⑿、搜索:
yum search string1 [string2] […],以指定的关键字搜索程序包名及summary信息
⒀、查看指定包所依赖的capabilities:
yum deplist package1 [package2] […]
⒁、查看yum 事务历史:
yum历史日志文件:/var/log/yum.log
#cat /var/log/yum.log也可以查看yum事务历史
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
#yum history
#yum history info 6,查看第六项yum事务
#yum history undo 6,撤销第六项yum事务
⒂、包组管理的相关命令:
单个包的功能有限,为了实现复杂的功能,需要许多包组成包组
#yum groupinstall group1 [group2] […] ,安装包组
#yum groupupdate group1 [group2] […] ,升级包组
#yum grouplist [hidden] [groupwildcard] […] ,查看包组列表
#yum groupremove group1 [group2] […] ,卸载包组
#yum groupinfo group1 […] ,查看包组信息
[root@centos7 ~]# yum grouplist|wc -l
Repository 'base' is missing name in configuration, using id
26
[root@centos7 ~]# yum grouplist hidden|wc -l
Repository 'base' is missing name in configuration, using id
97 有隐藏的包组
3)、如何使用光盘当作本地yum 仓库
(1)挂载光盘至某目录,例如/mnt/cdrom
[root@centos7 ~]# ll /dev/cdrom
lrwxrwxrwx. 1 root root 3 Aug 24 21:04 /dev/cdrom -> sr0
#mkdir /mnt/cdrom
# mount /dev/cdrom /mnt/cdrom 但是若果重启系统,此挂载会丢失进而yum源也就不再能够使用
所以可以使用光盘的自动挂载路径/misc/cd,此自动挂载是通过autofs服务实现的
(2)创建配置文件
[cdrom]
name=
baseurl=file:///mnt/cdrom或者file:///misc/cd
gpgcheck=
gpgkey=
enabled=
4)、yum 的命令行选项
–nogpgcheck:禁止进行gpgcheck检查
-y:自动回答为“yes”
-q:静默模式
–disablerepo=repoidglob:临时禁用此处指定的repo
–enablerepo=repoidglob:临时启用此处指定的repo
–noplugins:禁用所有插件
5)、yum 仓库
①、yum 的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号
$arch: 平台,i386,i486,i586,x86_64等等
$basearch:当前基础平台架构
实例:
baseurl=http://server/centos/$releasever/$basearch/
http://server/centos/7/x86_64
http://server/centos/6/i384
②、创建自定义yum仓库:
createrepo [options] <directory>
其中yum需要的一些依靠性、校验信息等等都存放在repodata目录中,所以要自定义建立yum源不仅需要rpm包,也是离不开repodata目录,repodata目录文件可以由createrepo命令生成
创建于目录/testdir/repodb
[root@localhost repodb]# lftp 10.1.0.1
lftp 10.1.0.1:~> ls 查看当前目录下的文件列表
drwxr-xr-x 23 0 0 4096 Jul 23 05:16 pub
lftp 10.1.0.1:~> cd pub
lftp 10.1.0.1:/pub> cd Sources/
lftp 10.1.0.1:/pub/Sources> cd 6.x86_64/
lftp 10.1.0.1:/pub/Sources/6.x86_64>
lftp 10.1.0.1:/pub/Sources/6.x86_64> cd xen
xen-4.1/ xen4centos/
lftp 10.1.0.1:/pub/Sources/6.x86_64> cd xen-4.1/
lftp 10.1.0.1:/pub/Sources/6.x86_64/xen-4.1>
lftp 10.1.0.1:/pub/Sources/6.x86_64/xen-4.1> mget * 复制xen-4.1下的全部文件至当前目录
lftp 10.1.0.1:/pub/Sources/6.x86_64/xen-4.1>bye 退出
[root@localhost repodb]#createrepo . 创建repodata目录于当前目录下
所以创建自定义yum仓库的baseurl=file:///testdir/repodb/
6)、程序包编译-把程序源代码编译成rpm包
源代码–> 预处理–> 编译(gcc)–> 汇编–> 链接–>执行
C代码编译安装三步骤-在源代码目录下操作
①、./configure:
通过选项传递参数,指定启用特性、安装路径等;执行时会参考用户的指定以及makefile.in 文件生成makefile
检查依赖到的外部环境
②、make:根据makefile 文件,构建二进制应用程序
③、make install:复制文件到相应的路径
注意:安装前查看INSTALL,README
开源程序源代码的获取
c/c++ 编译器: gcc (GNU C Complier),gcc来源于Development Tools包组,gcc的版本号应和源代码所用gcc版本一致,否则编译时可能会出现问题
编译C 源代码:
前提:提供开发工具及开发环境
开发工具:make, gcc等等
开发环境:开发库,头文件、glibc标准库
通过“包组”提供开发组件
CentOS 6: "Development Tools"
"Server Platform Development"
[root@localhost ~]# lftp 10.1.0.1
lftp 10.1.0.1:~> cd pub
cd ok, cwd=/pub
lftp 10.1.0.1:/pub> cd Sources/
lftp 10.1.0.1:/pub/Sources> cd sources/
lftp 10.1.0.1:/pub/Sources/sources> cd httpd
lftp 10.1.0.1:/pub/Sources/sources/httpd> ls
-rwxr–r– 1 500 500 785724 Mar 11 2012 apr-1.4.6.tar.bz2
-rwxr–r– 1 500 500 813976 Mar 18 2014 apr-1.5.0.tar.bz2
-rwxr–r– 1 500 500 992859 Aug 08 2012 apr-iconv-1.2.1.tar.bz2
-rwxr–r– 1 500 500 635000 Mar 11 2012 apr-util-1.4.1.tar.bz2
-rwxr–r– 1 500 500 693258 Apr 11 2013 apr-util-1.5.2.tar.bz2
-rwxr–r– 1 500 500 695303 Mar 18 2014 apr-util-1.5.3.tar.bz2
-rwxr–r– 1 500 500 5625498 Dec 16 2014 httpd-2.2.29.tar.bz2
-rwxr–r– 1 500 500 5031834 Dec 16 2014 httpd-2.4.10.tar.bz2
-rwxr–r– 1 500 500 4949897 Aug 20 2013 httpd-2.4.6.tar.bz2
-rwxr–r– 1 500 500 4994460 Mar 18 2014 httpd-2.4.9.tar.bz2
-rwxr–r– 1 500 500 18739 Mar 09 2012 mod_bw-0.7.tgz
-rwxr–r– 1 500 500 10057503 Sep 18 2015 phpMyAdmin-4.4.14.1-all-languages.zip
-rwxr–r– 1 500 500 7518362 Sep 18 2015 wordpress-4.3.1-zh_CN.zip
lftp 10.1.0.1:/pub/Sources/sources/httpd> get httpd-2.2.29.tar.bz2
lftp 10.1.0.1:/pub/Sources/sources/httpd>bye
[root@localhost ~]#tar jxvf httpd-2.2.29.tar.bz2
[root@localhost httpd-2.2.29]# ls
ABOUT_APACHE config.log httpd.mak Makefile README
acinclude.m4 config.nice httpd.spec Makefile.in README.platforms
Apache.dsw config.status include Makefile.win README-win32.txt
build configure INSTALL modules ROADMAP
BuildAll.dsp configure.in InstallBin.dsp modules.c server
BuildBin.dsp docs LAYOUT modules.lo srclib
buildconf emacs-style libhttpd.dep modules.o support
buildmark.o httpd libhttpd.dsp NOTICE test
CHANGES httpd.dep libhttpd.mak NWGNUmakefile VERSIONING
config.layout httpd.dsp LICENSE os
[root@localhost httpd-2.2.29]# ./configure –help
Installation directories安装总路径:
–prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local/apache2]是默认安装位置
By default, `make install' will install all the files in`/usr/local/apache2/bin', `/usr/local/apache2/lib' etc.默认分门别类安装在总目录下各分路径
–sysconfdir=DIR:配置文件安装位置
[root@localhost httpd-2.2.29]# ./configure –prefix=/usr/local/http2 –sysconfdir=/etc/http2
在当前目录下生成Makefile(因为命令configure不在PATH路径,所以使用相对路径)
[root@localhost httpd-2.2.29]# make
[root@localhost httpd-2.2.29]# make install
[root@localhost httpd-2.2.29]# cd /usr/local
[root@localhost local]# ls
bin etc games http2 include lib lib64 libexec sbin share src
[root@localhost local]# cd http2/
[root@localhost http2]# ls
bin build cgi-bin error htdocs icons include lib logs man manual modules
[root@localhost http2]# cd bin
[root@localhost bin]# ls
ab apu-1-config dbmmanage htcacheclean htpasswd logresolve
apachectl apxs envvars htdbm httpd rotatelogs
apr-1-config checkgid envvars-std htdigest httxt2dbm
[root@localhost bin]# netstat –atn 查看本机上所有的tcp协议的IP,80端口结尾的是web服务
[root@localhost bin]# ./apachectl start 因为命令apachectl不在PATH路径,所以使用相对路径
关闭防火墙才能够访问此web服务
[root@localhost bin]# iptables –vnL 查看防火墙情况
[root@localhost bin]# iptables –F 关闭防火墙
[root@localhost bin]# links 10.1.249.31
此外
[root@localhost http2]# cd htdocs
[root@localhost htdocs]# ls
index2.html index.html
其中index2.html是后来建立并在其中写入“welcome to mywebsite”
那么
[root@localhost bin]# links 10.1.249.31/index2.html 访问时显示信息“welcome to mywebsite”
安装后的配置:
(1)二进制程序apachectl目录导入至PATH 环境变量中,就可以直接使用命令apachectl而不再用写绝对路径或相对路径;
编辑文件/etc/profile.d/NAME.sh
#vim /etc/profile.d/http2.sh
PATH=$PATH:/usr/local/http2/bin
(2)导入库文件路径
编辑/etc/ld.so.conf.d/NAME.conf
添加新的库文件所在目录至此文件中#vim /etc/ld.so.conf.d/http2.sh
/usr/local/http2/lib
然后让系统重新生成缓存#ldconfig [-v]
(3)导入头文件,头文件的默认位置是/usr/include
基于链接的方式实现:ln –sv
[root@localhost htdocs]# cd /usr/include
[root@localhost include]# ln –s /usr/local/http2/include http2
(4)导入帮助手册
编辑/etc/man.config|man_db.conf文件
添加一个MANPATH /usr/local/http2/man
原创文章,作者:18612763863,如若转载,请注明出处:http://www.178linux.com/42382