軟件包管理?

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.www58058.com/42382

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

相關推薦

  • Linux nginx服務之反向代理

                       Linux nginx服務之反向代理 Nginx服務之反向代理: GSLB:Global Service LB 全局服務負載均衡: SLB:Service LB 應用程序發布: 灰度模型:   ngx_http_…

    系統運維 2016-11-18
  • 獲取Linux命令幫助信息及man的用法

    經常在使用Linux命令時不清楚命令都有哪些參數,命令和參數的具體含義,我們根據命令的不同來源大致可以分為內部命令和外部命令。 內部命令幫助信息的獲?。篶ommand help 那我不知道這個命令是不是內部命令,使用type command來確認是一個內部的還是一個外部的命令 外部命令幫助信息的獲?。撼S玫挠?#8211;help,man,info,還有一些…

    Linux干貨 2016-09-17
  • 運維自動化之系統安裝

    自動化安裝系統,cobbler的安裝使用

    Linux干貨 2018-01-15
  • linux的基礎小命令

    1、ifconfig,顯示主機的IP地址 2、echo 用法echo [short-option]… [string]…     -n:不進行換行     string可以使用單引號或雙引號引用變量,單引號變量內容不會替換,雙引號會替換  &nb…

    Linux干貨 2016-10-30
  • sed基本用法詳解

    一、sed介紹:        sed是非交互式的編輯器,同時又是面向字符流的,一次處理一行文本。當前輸入的行被緩存至一個被稱為模式空間(pattern space)的內存空間中,與給定的模式進行比對,若不匹配,則將內容輸出至屏幕,之后讀取第二行;若匹配,則執行編輯命令,命令執行完成后,將模式空間中…

    Linux干貨 2016-08-10
  • 第三章 Linux文件系統初步

    用戶界面:      可分為兩種GUI和CLI         GUI(Graphical User Interface,簡稱 GUI,又稱圖形用戶接口)是指采用圖形方式顯示的計算機操作用戶界面。 GNOME(英語發音:/ɡ?no?m/或英語發音:/…

    Linux干貨 2016-06-03
欧美性久久久久