《LINUX教學:Linux yum的配置使用和程序包的編譯安裝》要點:
本文介紹了LINUX教學:Linux yum的配置使用和程序包的編譯安裝,希望對您有用。如果有疑問,可以聯系我們。
在上一篇博客中,寫到了如何使用rpm命令來安裝、卸載軟件等,但是大家都知道,各個軟件包之間可能存在依賴關系,如果安裝某個軟件必要額外的依賴其他若干的包,那么我們就必要將其他額外的包一個一個的安裝上去,這樣的一個過程是非常耗時的,所以出現了一個前端工具,如yum,dnf,apt-get等,本次博客就CentOS上的yum和程序包的編譯安裝做出詳細的描述,最后還通過實際的例子介紹了程序包的編譯安裝.
yum實現軟件包的獲取其實是基于C/S架構的,C為你的主機,S為yum?repository(文件服務器或者本地yum ?repository),yum?repository里面存儲了眾多的rpm包,以及包的相關元數據文件(包括軟件包的列表和依賴關系等)和計算出來的特征碼,一般放在repodata目錄下面.
當我們使用yum安裝一個軟件包的時候,會進行如下幾個步調:
1.當地主機會在配置文件里面找到yum repository的指向,并建立連接;
2.從yum repository獲取元數據文件和特性碼放在緩存里面;
3.通過查看元數據文件獲知需要安裝的軟件包和其依賴的軟件的名稱并向yum repository發起哀求;
4.當地主機獲取到軟件包后進行安裝.
5.安裝好后,rpm包會被刪除,但是元數據文件和特征碼會被保留下來,其目的是為了當你再向yum repository發起連接的時候,先會向yum repository獲取到特征碼和本地緩存的特征碼做對比,如果相同則說明yum repository里面的文件沒有發生改變,如果不同,則說明yum repository里面的文件發生了改變,這時候就需要重新向yum repository獲取元數據文件了.
?
通常情況下yum repository都是文件服務器,你可以通過URL進行拜訪,如:
ftp://path/to/repository/? ? 通過FTP進行拜訪和傳輸
http://path/to/repository/? 通過http進行拜訪和傳輸
nfs://path/to/repository/ ? 通過nfs進行拜訪和傳輸
file:///path/to/repository/? 用于當地的yum倉庫
?
yum的設置裝備擺設文件有:
/etc/yum.conf:為所有倉庫提供公共設置裝備擺設
/etc/yum.repos.d/下以repo結尾的文件:為倉庫的指向提供設置裝備擺設
yum.conf的內容:
[main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=0 debuglevel=2 logfile=/var/log/yum.log exactarch=1 obsoletes=1 gpgcheck=1 plugins=1 installonly_limit=5 bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum distroverpkg=centos-release
cachedir:緩存目錄,默認環境下在"/var/cache/yum";
keepcache:是否保留緩存,0是不保留,1是保留;
debuglevel:Debug信息的輸出品級,范圍為0-10,默認為2
logfile:寄存log的文件路徑
exactarch:是否準確匹配平臺,默認是1,準確匹配平臺
obsolete:這個選項僅僅會影響升級,簡單的說相當于upgrade,容許更新舊版本的rpm包
gpgcheck:是否經驗安裝包的來源正當性
plugins:是否允許使用插件安裝插件,1表現安裝
installonly_limit:允許同時堅持的內核包
bugtracker_url:bug的追蹤的url
distroverpkg:指定一個軟件包,yum會根據這個包斷定你的發行版本,這里是centos-release
具體的可以是使用敕令man yum.conf查看
下面我們來看一下/etc/yum.repos.d/下的文件
[root@localhost ~]# ls /etc/yum.repos.d/ CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
這里就有許多以repo結尾的文件,都是yum repository的指向:
讓我們來看一下/etc/yum.repo.d/CentOS-Base.repo,其他里面的yum repository都是disable的:
# CentOS-Base.repo # # The mirror system uses the connecting IP address of the client and the # update status of each mirror to pick mirrors that are updated to and # geographically close to the client. You should use this for CentOS updates # unless you are manually picking other mirrors. # # If the mirrorlist= does not work for you, as a fall back you can try the # remarked out baseurl= line instead. # # [base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
repository指向的界說:
[repositoryID] #具有唯一性 name=some name for this repository baseurl=url://path/to/repository #yum repository的url可以為多個,路徑下必需有repodata enable=1 #是否開啟,1為開啟,0為關閉,不寫的話,默認開啟 gpgckeck=1 gpgkey=URL cost=1000 enablegroup=1 #是否允許使用包組,默認是允許
$releasever:當前os的發行版的主版本號
$arch:平臺
$basearch:基礎平臺
$YUM0-$YUM9:用戶自定義的變量
yum [options] [command] [package ...] command is one of: * install package1 [package2] [...] * update [package1] [package2] [...] * update-to [package1] [package2] [...] * update-minimal [package1] [package2] [...] * check-update * upgrade [package1] [package2] [...] * upgrade-to [package1] [package2] [...] * distribution-synchronization [package1] [package2] [...] * remove | erase package1 [package2] [...] * autoremove [package1] [...] * list [...] * info [...] * provides | whatprovides feature1 [feature2] [...] * clean [ packages | metadata | expire-cache | rpmdb | plugins | all ] * makecache [fast] * groups [...] * search string1 [string2] [...] * shell [filename] * resolvedep dep1 [dep2] [...] (maintained for legacy reasons only - use repoquery or yum provides) * localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) * localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update) * reinstall package1 [package2] [...] * downgrade package1 [package2] [...] * deplist package1 [package2] [...] * repolist [all|enabled|disabled] * repoinfo [all|enabled|disabled] * repository-packages <enabled-repoid> <install|remove|remove-or-reinstall|remove-or-
1.顯示repository列表:
repolist [all|enabled|disabled]
all:顯示所有的yum repository
enable:不帶參數默認顯示啟用的yum repository
disable:顯示關閉的yum repository
[root@localhost yum.repos.d]# yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.cn99.com * updates: mirrors.aliyun.com repo id repo name status !base/7/x86_64 CentOS-7 - Base 9,363 !extras/7/x86_64 CentOS-7 - Extras 451 !updates/7/x86_64 CentOS-7 - Updates 2,146 [root@localhost yum.repos.d]# yum repolist all Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.cn99.com * updates: mirrors.aliyun.com repo id repo name status C7.0.1406-base/x86_64 CentOS-7.0.1406 - Base disabled C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 - CentOSPlus disabled C7.0.1406-extras/x86_64 CentOS-7.0.1406 - Extras disabled C7.0.1406-fasttrack/x86_64 CentOS-7.0.1406 - CentOSPlus disabled C7.0.1406-updates/x86_64 CentOS-7.0.1406 - Updates disabled C7.1.1503-base/x86_64 CentOS-7.1.1503 - Base disabled C7.1.1503-centosplus/x86_64 CentOS-7.1.1503 - CentOSPlus disabled C7.1.1503-extras/x86_64 CentOS-7.1.1503 - Extras disabled C7.1.1503-fasttrack/x86_64 CentOS-7.1.1503 - CentOSPlus disabled C7.1.1503-updates/x86_64 CentOS-7.1.1503 - Updates disabled C7.2.1511-base/x86_64 CentOS-7.2.1511 - Base disabled C7.2.1511-centosplus/x86_64 CentOS-7.2.1511 - CentOSPlus disabled C7.2.1511-extras/x86_64 CentOS-7.2.1511 - Extras disabled C7.2.1511-fasttrack/x86_64 CentOS-7.2.1511 - CentOSPlus disabled C7.2.1511-updates/x86_64 CentOS-7.2.1511 - Updates disabled !base/7/x86_64 CentOS-7 - Base enabled: 9,363 base-debuginfo/x86_64 CentOS-7 - Debuginfo disabled base-source/7 CentOS-7 - Base Sources disabled c7-media CentOS-7 - Media disabled centosplus/7/x86_64 CentOS-7 - Plus disabled centosplus-source/7 CentOS-7 - Plus Sources disabled cr/7/x86_64 CentOS-7 - cr disabled !extras/7/x86_64 CentOS-7 - Extras enabled: 451 extras-source/7 CentOS-7 - Extras Sources disabled fasttrack/7/x86_64 CentOS-7 - fasttrack disabled !updates/7/x86_64 CentOS-7 - Updates enabled: 2,146 updates-source/7 CentOS-7 - Updates Sources disabled
2.顯示法式包
yum list [all | glob_exp1] [glob_exp2] [...] yum list {available|installed|updates} [glob_exp1] [...]
3.安裝法式包
yum install package1 [package2] [...] yum reinstall package1 [package2] [...] (重新安裝)
4.升級法式包
yum update [package1] [package2] [...] yum downgrade package1 [package2] [...] (降級)
5.反省可用升級
yum check-update
6.卸載法式包
yum remove | erase package1 [package2] [...]
7.查看法式包information
yum info package1 [package2] [...]
8.查看指定的特性(可以是某文件)是由哪個法式包所提供的
yum provides | whatprovides feature1 [feature2] [...]
[root@localhost yum.repos.d]# yum provides /bin/ls Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.cn99.com * updates: mirrors.aliyun.com coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : base Matched from: Filename : /bin/ls coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : @anaconda Matched from: Filename : /bin/ls
?9.清理當地緩存
yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
10.構建緩存
yum makecache
11.搜刮
yum search string1 [string2] [...] #以指定的關鍵字搜索法式包及Summary信息
12.查看指定包所依賴的capabilities
yum deplist package1 [package2] [...]
13.查看yum事務汗青
yum history [info|list|packages-list|packages-info|summary|addon-info|redo|undo|rollback|new|sync|stats]
14.安裝及升級當地程序包
yum localinstall rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use install) yum localupdate rpmfile1 [rpmfile2] [...] (maintained for legacy reasons only - use update)
15.包組治理的相關命令
yum groupinstall group1 [group2] [...] yum groupupdate group1 [group2] [...] yum grouplist [hidden] [groupwildcard] [...] yum groupremove group1 [group2] [...] yum groupinfo group1 [...]
16.yum的敕令選項
--nogpgcheck:禁止進行gpg check; -y: 自動回答為“yes”; -q:靜默模式; --disablerepo=repoidglob:臨時禁用此處指定的repo; --enablerepo=repoidglob:臨時啟用此處指定的repo; --noplugins:禁用所有插件;
如何使用光盤當作當地yum repository?
(1)掛載光盤至某目次,例如/media/cdrom
[root@localhost yum.repos.d]# mount -r /dev/sr0 /media/cdrom/ [root@localhost yum.repos.d]# [root@localhost yum.repos.d]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/cl-root 17811456 2824736 14986720 16% / devtmpfs 489004 0 489004 0% /dev tmpfs 499980 0 499980 0% /dev/shm tmpfs 499980 6728 493252 2% /run tmpfs 499980 0 499980 0% /sys/fs/cgroup /dev/sda1 1038336 123500 914836 12% /boot tmpfs 100000 0 100000 0% /run/user/0 /dev/sr0 4276440 4276440 0 100% /media/cdrom
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.bak [root@localhost yum.repos.d]# vim CentOS-Local.repo [CentOS7] name=CentOS7 rpm from disk baseurl=file:///media/cdrom/ gpgcheck=0 [root@localhost cdrom]# yum repolist #顯示可用的倉庫列表 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile repo id repo name status CentOS7 CentOS7 rpm from disk 3,831 repolist: 3,831 [root@localhost cdrom]#?
如何創建yum倉庫?
前面寫到baseurl指向的yum repository的下必需有repodata目錄,repodata目錄下存放著元數據和特征碼等信息,那么如何生存呢?
我們現在/xfs目次下放了一些關于xfs的rpm包:
[root@localhost xfs]# ll total 3980 -rw-r--r--. 1 root root 942156 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.i686.rpm -rw-r--r--. 1 root root 916492 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.x86_64.rpm -rw-r--r--. 1 root root 942328 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.i686.rpm -rw-r--r--. 1 root root 916296 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.x86_64.rpm -rw-r--r--. 1 root root 68316 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.i686.rpm -rw-r--r--. 1 root root 68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64(1).rpm -rw-r--r--. 1 root root 68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64.rpm -rw-r--r--. 1 root root 68184 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.i686.rpm -rw-r--r--. 1 root root 68148 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.x86_64.rpm
使用createrepo來天生:
[root@localhost ~]# createrepo /xfs/ Spawning worker 0 with 5 pkgs Spawning worker 1 with 4 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete [root@localhost ~]# ll /xfs/ total 3984 drwxr-xr-x. 2 root root 4096 Sep 10 10:46 repodata -rw-r--r--. 1 root root 942156 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.i686.rpm -rw-r--r--. 1 root root 916492 Sep 10 10:41 xfsprogs-4.5.0-10.el7_3.x86_64.rpm -rw-r--r--. 1 root root 942328 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.i686.rpm -rw-r--r--. 1 root root 916296 Sep 10 10:41 xfsprogs-4.5.0-9.el7_3.x86_64.rpm -rw-r--r--. 1 root root 68316 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.i686.rpm -rw-r--r--. 1 root root 68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64(1).rpm -rw-r--r--. 1 root root 68264 Sep 10 10:41 xfsprogs-devel-4.5.0-10.el7_3.x86_64.rpm -rw-r--r--. 1 root root 68184 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.i686.rpm -rw-r--r--. 1 root root 68148 Sep 10 10:41 xfsprogs-devel-4.5.0-9.el7_3.x86_64.rpm [root@localhost ~]# ll /xfs/repodata/ total 32 -rw-r--r--. 1 root root 1615 Sep 10 10:46 048072895365ec38b370d70bc209f3fd08a54bba535a2feb497448fa7b3d622e-other.xml.gz -rw-r--r--. 1 root root 3885 Sep 10 10:46 29cf78ac1dcc6c2443c5a2d9a135a4a7f1591f44a1964c984c1664000ac86ee6-other.sqlite.bz2 -rw-r--r--. 1 root root 1239 Sep 10 10:46 2a83ee6cbdb7d0ca6063f91aa8e382271a05ae1e868f637beb0549758511325b-filelists.xml.gz -rw-r--r--. 1 root root 3144 Sep 10 10:46 40f7e90c6dc338f5292d2cb1ee3d2153241fb714eca0365d2419eadfe7fda2e0-filelists.sqlite.bz2 -rw-r--r--. 1 root root 7501 Sep 10 10:46 5c4be0e2d956a133454d00f51c3833d44d13c60375937bf59bce4258210d9075-primary.sqlite.bz2 -rw-r--r--. 1 root root 2376 Sep 10 10:46 5c7e3e89ad6e3210fee5ca5519fcd26bb60f4356d9035da5e273bb69521b8be3-primary.xml.gz -rw-r--r--. 1 root root 2975 Sep 10 10:46 repomd.xml #特征碼
?然后在配置文件里面添加就行了,這樣當地創建的yum repository就生效了:
[root@localhost yum.repos.d]# vim CentOS-Local.repo [CentOS7] name=CentOS7 rpm from disk baseurl=file:///media/cdrom/ gpgcheck=0 enable=1 [xfs] name=xfs for centos7 baseurl=file:///xfs/ gpgcheck=0 enable=1
更多詳情見請繼續閱讀下一頁的出色內容:
_baidu_page_break_tag_我們有的時候并不能獲取到相應軟件的rpm包或者是原本便是沒有rpm包的,但是一般項目網站都會給我們提供對應的源代碼,然后我們可以使用工具進行編譯安裝.
編譯C源代碼的前提:
提供開發環境及開發對象.
開發對象:make,gcc等
開發環境:開發庫,頭文件,尺度庫等
在CentOS中是經由過程“包組”提供開發組件
在centos6中:
yum groupinstall "Development Tools" yum groupinstall "Server Platform Development"
在centos7中:
yum groupinstall "Development Tools" #即可
然后就可以開端編譯安裝了!
建議:安裝前查看install或者readme文件
第一步:
運行configure劇本(./configure):
(1)通過傳遞參數,指定啟動特性、安裝路徑等,執行時會參考用戶指定以及Makefile.in文件(有的時候可能沒有configure文件和Makefile.in文件,autoconf根據指定的配置文件可以生成configure文件,automake可以根據指定的配置文件生成Makefile.in文件),最畢生成Makefile.
(2)反省依賴到外部環境
選項: --help:獲取其他支持的使用選項 --prefix=/PATH/TO/SOMEWHERE: 指定默認安裝位置;默認為/usr/local/ --sysconfdir=/PATH/TO/SOMEWHERE:配置文件安裝位置 Optional Features: 可選特性 --disable-FEATURE --enable-FEATURE[=ARG] Optional Packages: 可選包 --with-PACKAGE[=ARG] --without-PACKAGE
如果不指定--prefix選項,安裝后可執行文件默認放在/usr/local/bin,庫文件默認放在/usr/local/lib,配置文件放在/usr/local/etc,其他的資源文件放在/usr/local/share.指定prefix的好處便是當你想卸載軟件的時候,直接刪除該安裝目錄就行了,也可以將整個目錄拷貝到其他的機器上使用,前提是同樣的操作系統.
?第二步:
make(make其實是一個項目的構建工具,它可以對代碼進行預處置、編譯等操作)
根據makefile文件,構建應用法式
第三步:
make install?
用來安裝,它從Makefile中讀取指令,安裝到指定的地位.
安裝后的設置裝備擺設:
1.解壓縮并展開文件:
[root@localhost ~]# tar xf httpd-2.2.34.tar.bz2
2.查看目次下的文件:
[root@localhost ~]# cd httpd-2.2.34 [root@localhost httpd-2.2.34]# [root@localhost httpd-2.2.34]# ll total 1160 -rw-r--r--. 1 1001 1001 14882 Nov 21 2004 ABOUT_APACHE -rw-r--r--. 1 1001 1001 18613 Jul 6 2012 acinclude.m4 -rw-r--r--. 1 1001 1001 56952 Oct 5 2010 Apache.dsw drwxr-xr-x. 6 1001 1001 4096 Jul 6 15:19 build -rw-r--r--. 1 1001 1001 2644 Aug 24 2007 BuildAll.dsp -rw-r--r--. 1 1001 1001 2692 Jul 29 2009 BuildBin.dsp -rwxr-xr-x. 1 1001 1001 5786 Sep 19 2012 buildconf -rw-r--r--. 1 1001 1001 147887 Jun 28 20:16 CHANGES -rw-r--r--. 1 1001 1001 11701 Feb 27 2012 config.layout -rwxr-xr-x. 1 1001 1001 574593 Jul 6 15:19 configure -rw-r--r--. 1 1001 1001 24720 May 25 2015 configure.in drwxr-xr-x. 9 1001 1001 124 Jul 6 15:19 docs -rw-r--r--. 1 1001 1001 403 Nov 21 2004 emacs-style -rw-r--r--. 1 1001 1001 1248 May 7 2011 httpd.dep -rw-r--r--. 1 1001 1001 4124 Jun 11 2008 httpd.dsp -rw-r--r--. 1 1001 1001 8994 May 6 2011 httpd.mak -rw-r--r--. 1 1001 1001 12053 Jul 6 15:19 httpd.spec drwxr-xr-x. 2 1001 1001 4096 Jul 6 15:19 include -rw-r--r--. 1 1001 1001 5129 Jan 9 2017 INSTALL -rw-r--r--. 1 1001 1001 2909 Dec 7 2006 InstallBin.dsp -rw-r--r--. 1 1001 1001 5145 Nov 29 2005 LAYOUT -rw-r--r--. 1 1001 1001 30119 May 7 2011 libhttpd.dep -rw-r--r--. 1 1001 1001 17039 Jan 12 2007 libhttpd.dsp -rw-r--r--. 1 1001 1001 28503 May 6 2011 libhttpd.mak -rw-r--r--. 1 1001 1001 28690 Jan 18 2008 LICENSE -rw-r--r--. 1 1001 1001 8739 Nov 25 2008 Makefile.in -rw-r--r--. 1 1001 1001 34759 Jan 19 2014 Makefile.win drwxr-xr-x. 20 1001 1001 4096 Jul 6 15:19 modules -rw-r--r--. 1 1001 1001 828 Jan 2 2017 NOTICE -rw-r--r--. 1 1001 1001 12894 Mar 15 2012 NWGNUmakefile drwxr-xr-x. 9 1001 1001 149 Jul 6 15:19 os -rw-r--r--. 1 1001 1001 5954 Jan 10 2007 README -rw-r--r--. 1 1001 1001 4178 Aug 27 2014 README.platforms -rw-r--r--. 1 1001 1001 2553 Dec 20 2010 README-win32.txt -rw-r--r--. 1 1001 1001 10183 Mar 14 2005 ROADMAP drwxr-xr-x. 3 1001 1001 4096 Jul 6 15:19 server drwxr-xr-x. 5 1001 1001 64 Jul 6 15:19 srclib drwxr-xr-x. 4 1001 1001 4096 Jul 6 15:19 support drwxr-xr-x. 2 1001 1001 248 Jul 6 15:19 test -rw-r--r--. 1 1001 1001 8183 Oct 17 2005 VERSIONING
3.運行configure劇本,并指定軟件安裝目錄為/usr/local/apache2,指定配置文件的路徑為/etc/http2
[root@localhost httpd-2.2.34]# ./configure --prefix=/usr/local/apache2 --sysconfdir=/etc/httpd2 #這里指定了配置文件的寄存位置,也可以不指定,如果不指定默認在安裝目錄下有一個conf目錄,建議不指定
4.make
[root@localhost httpd-2.2.34]#make
5.make ?install
[root@localhost httpd-2.2.34]#make install
如果沒有任何報錯就代表已經安裝勝利了,我們去安裝目錄下面看一下(如果指定了安裝目錄,所有的東西都會被放在指定的目錄下面,建議大家這么做,因為以后想刪除軟件的時候,直接將整個目錄刪除了進行了,本次例子中的配置文件是放在/etc/httpd2下,如果卸載也要記得刪除此目錄):
[root@localhost httpd-2.2.34]# cd /usr/local/apache2/ [root@localhost apache2]# ll total 40 drwxr-xr-x. 2 root root 283 Sep 10 12:03 bin drwxr-xr-x. 2 root root 253 Sep 10 12:03 build drwxr-xr-x. 2 root root 38 Sep 10 12:03 cgi-bin drwxr-xr-x. 3 root root 4096 Sep 10 12:03 error drwxr-xr-x. 2 root root 24 Jul 6 15:19 htdocs drwxr-xr-x. 3 root root 8192 Sep 10 12:03 icons drwxr-xr-x. 2 root root 4096 Sep 10 12:03 include drwxr-xr-x. 3 root root 4096 Sep 10 12:03 lib drwxr-xr-x. 2 root root 6 Sep 10 12:03 logs drwxr-xr-x. 4 root root 30 Sep 10 12:03 man drwxr-xr-x. 14 root root 8192 Jul 6 15:20 manual drwxr-xr-x. 2 root root 23 Sep 10 12:03 modules
好的,接下來進行安裝后的一些事情:
?1.導出二進制配置文件至PATH情況變量中:
[root@localhost apache2]# vim /etc/profile.d/apache.sh export PATH=/usr/local/apache2/bin:$PATH [root@localhost apache2]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost apache2]# [root@localhost apache2]# source /etc/profile.d/apache.sh #讓過程重新讀取一些配置文件 [root@localhost apache2]# echo $PATH /usr/local/apache2/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
2.導出庫文件路徑
[root@localhost apache2]# vim /etc/ld.so.conf.d/apache2.conf /usr/local/apache2/lib [root@localhost apache2]# ldconfig #使用ldconfig重新生成緩存
3.導出頭文件,創立軟連接
[root@localhost include]# ln -sv /usr/local/apache2/include/ /usr/include/apache2 ‘/usr/include/apache2’ -> ‘/usr/local/apache2/include/’
4.導出贊助手冊
?
[root@localhost include]man apachectl
以上步調完成之后,我們可以運行服務了:
[root@localhost ~]# apachectl start #啟動,停用則使用apachectl stop [root@localhost ~]# netstat -tan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.172.134:22 192.168.172.1:61089 ESTABLISHED tcp6 0 0 :::80 :::* LISTEN #當80端口被監聽闡明已經啟用成功了 tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
可以直接在瀏覽器里面查看啦!It works(記得關閉防火墻,systemctl stop firewalld)!
?
本文永遠更新鏈接地址:
歡迎參與《LINUX教學:Linux yum的配置使用和程序包的編譯安裝》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7041.html