软件包管理​

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

(0)
1861276386318612763863
上一篇 2016-09-01
下一篇 2016-09-01

相关推荐

  • 关于文件 atime mtime gtime 专题–2016-07-27

    Linux文件组成部分:元数据(metadata)和数据(date) 元数据的查看方式:使用stat命令; 数据的查看方式:文本格式使用 cat nano查看及修改即可; stat命令: 功能说明:显示文件或文件系统的状态 语法: stat  [OPTION] …  FILE… 参数:   举例: [ro…

    Linux干货 2016-08-04
  • Trie树:应用于统计和排序

    1. 什么是trie树 1.Trie树 (特例结构树)         Trie树,又称单词查找树、字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少…

    Linux干货 2015-04-08
  • 基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

    前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以今后Corosync会逐渐取代Heartbeat。本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案。 …

    Linux干货 2015-06-12
  • 第一周作业

    – 描述计算机的组成及其功能。 – 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别。 – 描述Linux的哲学思想,并按照自己的理解对其进行解释性描述。 – 说明Linux系统上命令的使用格式;详细介绍ifconfig、echo、tty、startx、export、pwd、history、shu…

    Linux干货 2016-12-04
  • linux运维

    linux运维大纲,学习路线图

    Linux干货 2017-10-21