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