2018-05-28筆記(軟件包安裝和卸載)
7.1 安裝軟件包的三種方法
linux下安裝軟件包有三種方式,rpm安裝,yum在線安裝,下載源碼包安裝
rpm工具
rpm(Redhat Package Manager)RPM軟件包管理器,是以一種數據庫記錄的方式來將我們所需要的套件安裝到Linux主機的一套管理程序。rpm包是預先在Linux機器上編譯好並打包好的文件,安裝起來非常快捷。但是有一個缺點:安裝環境必須與編譯時的一致或相當;包與包之間存在著相互依賴的情況,安裝或卸載包時需要先把依賴的包安裝/卸載,如果依賴的包時系統所必須的,那就不能卸載這個包。
yum工具
yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可以使系統管理人員交互和自動化地更細與管理RPM軟件包,能夠從指定的服務器自動下載RPM包並且安裝,可以自動處理依賴性關系,並且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
源碼包安裝
Linux軟件的源代碼分發是指提供了該軟件所有程序源代碼的發布形式,需要用戶自己編譯成可執行的二進制碼並進行安裝。其優點是配置靈活,可以隨意去掉或保留某些功能/模塊,適應多種硬件/操作系統平臺及編譯環境;缺點是難度較大
7.2rpm工具安裝軟件包
首先可以 mount /dev/cdrom /mnt 命令把光驅掛載到/mnt目錄下,那麽你會在/mnt/Packages目錄下看到很多.rpm的文件,這些就是RPM包
[root@localhost ~]# mount /dev/cdrom /mnt/ mount: block device /dev/sr0 is write-protected, mounting read-only [root@localhost Packages]# ll /mnt 總用量 664 -rw-rw-r-- 3 root root 14 9月 5 2017 CentOS_BuildTag drwxr-xr-x 3 root root 2048 9月 5 2017 EFI -rw-rw-r-- 3 root root 227 8月 30 2017 EULA -rw-rw-r-- 3 root root 18009 12月 10 2015 GPL drwxr-xr-x 3 root root 2048 9月 5 2017 images drwxr-xr-x 2 root root 2048 9月 5 2017 isolinux drwxr-xr-x 2 root root 2048 9月 5 2017 LiveOS drwxrwxr-x 2 root root 641024 9月 5 2017 Packages drwxr-xr-x 2 root root 4096 9月 5 2017 repodata -rw-rw-r-- 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-7 -rw-rw-r-- 3 root root 1690 12月 10 2015 RPM-GPG-KEY-CentOS-Testing-7 -r--r--r-- 1 root root 2883 9月 6 2017 TRANS.TBL [root@localhost Packages]# ls /mnt/Packages/|head 389-ds-base-1.3.6.1-16.el7.x86_64.rpm 389-ds-base-libs-1.3.6.1-16.el7.x86_64.rpm abattis-cantarell-fonts-0.0.25-1.el7.noarch.rpm abrt-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-ccpp-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-kerneloops-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-pstoreoops-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-python-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm abrt-addon-xorg-2.1.11-48.el7.centos.x86_64.rpm
每一個rpm包的名稱都由 - 和 . 分成了若幹部分。像“abrt-addon-vmcore-2.1.11-48.el7.centos.x86_64.rpm” 這個包, “abrt-addon-vmcore” 為包名, “2.1.11” 則為版本信息, “48.el7.centos” 為發布版本號, “x86_64” 為運行平臺。其中運行平臺常見的有i386, i586, i686, x86_64 ,需要你註意的是cpu目前是分32位和64位的,i386,i586和i686都為32位平臺,x86_64則代表為64位的平臺。另外有些rpm包並沒有寫具體的平臺而是noarch,這代表這個rpm包沒有硬件平臺限制。
安裝一個rpm包
語法: rpm [options] [參數]
Options:
-i:=install,安裝
-v:可視化
-h:顯示安裝進度
在安裝一個rpm包時常用附帶選項:
--force:強制安裝
--nodeps:=no dependent 無依賴安裝(忽視與其他包之間的依賴關系)
[root@localhost Packages]# rpm -ivh /mnt/Packages/libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
準備中... ################################# [100%]
正在升級/安裝...
1:libjpeg-turbo-devel-1.2.90-5.el7 ################################# [100%]
說明: 安裝有依賴關系的包時,可以先安裝其所依賴的包再安裝目標包(同時安裝存在依賴關系的包),或者使用--force或--nodeps選項進行強行安裝。
升級rpm包
語法: rpm [-U] [包名]
[root@localhost Packages]# rpm -Uvh /mnt/Packages/libjpeg-turbo-devel-1.2.90-5.el7.x86_64.rpm
準備中... ################################# [100%]
軟件包 libjpeg-turbo-devel-1.2.90-5.el7.x86_64 已經安裝
說明: 如果升級一個已經安裝的最新版本的包,執行該命令後無任何操作
卸載一個rpm包
語法: rpm [-e] [包名]
卸載時可以直接跟包名,無需加包的信息;當包之間存在依賴關系時也需要先卸載其依賴包。
[root@localhost Packages]# rpm -e libjpeg-turbo-devel #直接卸載了,沒有信息輸出
查詢已安裝的rpm包
語法:
rpm [-q] [包名] 查詢指定包
rpm [-qa] 查詢所有已安裝包
[root@localhost Packages]# rpm -q libjpeg-turbo
libjpeg-turbo-1.2.90-5.el7.x86_64
[root@localhost Packages]# rpm -qa |grep libjpeg-turbo #rpm -qa會把所有安裝的包列出來,太多了,可以通過管道|和grep過濾出來
libjpeg-turbo-1.2.90-5.el7.x86_64
查詢已安裝包的相關信息
語法: rpm [-qi] [包名]
q查詢,i信息information
[root@localhost Packages]# rpm -qi libjpeg-turbo
Name : libjpeg-turbo
Version : 1.2.90
Release : 5.el7
Architecture: x86_64
Install Date: 2018年05月29日 星期二 20時25分57秒
Group : System Environment/Libraries
Size : 350387
License : IJG
Signature : RSA/SHA256, 2014年07月04日 星期五 10時55分27秒, Key ID 24c6a8a7f4a80eb5
Source RPM : libjpeg-turbo-1.2.90-5.el7.src.rpm
Build Date : 2014年06月10日 星期二 11時48分52秒
Build Host : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager : CentOS BuildSystem <http://bugs.centos.org>
Vendor : CentOS
URL : http://sourceforge.net/projects/libjpeg-turbo
Summary : A MMX/SSE2 accelerated library for manipulating JPEG image files
Description :
The libjpeg-turbo package contains a library of functions for manipulating
JPEG images.
查詢某個包安裝了哪些文件
語法: rpm [-ql] [包名]
[root@localhost Packages]# rpm -ql libjpeg-turbo
/usr/lib64/libjpeg.so.62
/usr/lib64/libjpeg.so.62.1.0
/usr/share/doc/libjpeg-turbo-1.2.90
/usr/share/doc/libjpeg-turbo-1.2.90/ChangeLog.txt
/usr/share/doc/libjpeg-turbo-1.2.90/README
/usr/share/doc/libjpeg-turbo-1.2.90/README-turbo.txt
/usr/share/doc/libjpeg-turbo-1.2.90/change.log
查看某文件的安裝包
語法: rpm [-qf] [文件絕對路徑]
[root@localhost Packages]# rpm -qf /usr/bin/cd
bash-4.2.46-28.el7.x86_64
當不知道其絕對路徑時,使用which命令查詢
[root@localhost Packages]# rpm -qf `which cd`
bash-4.2.46-28.el7.x86_64
[root@localhost Packages]# which cd
/usr/bin/cd
[root@localhost Packages]# rpm -qf /usr/bin/cd #可以看到這裏和rpm -qf `which cd`結果是一樣的
bash-4.2.46-28.el7.x86_64
反引號``是得到那個命令的結果
列出所有rpm包
命令: yum list
[root@localhost ~]#yum list
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.btte.net
* extras: mirrors.aliyun.com
* updates: mirrors.tuna.tsinghua.edu.cn
Installed Packages
NetworkManager-libnm.x86_64 1:1.4.0-12.el7 @anaconda
NetworkManager-team.x86_64 1:1.4.0-12.el7 @anaconda
zsh.x86_64 5.0.2-25.el7_3.1 updates
zsh-html.x86_64 5.0.2-25.el7_3.1 updates
zziplib.i686 0.13.62-5.el7 base
zziplib.x86_64 0.13.62-5.el7 base
……
Exiting on Broken Pipe
註: 第一列是包名,第二列是版本號,第三列是庫
說明: 庫所在位置有“@”表示已安裝;“updates”表示已安裝,有新版本,需要升級;其他的表示可安裝但還未安裝的rpm包。
yum配置文件
[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo
搜索rpm包
語法: yum search [關鍵詞]或者yum list |grep [關鍵詞]
[root@localhost ~]# yum search vim
已加載插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* epel: mirrors.ustc.edu.cn
* extras: mirrors.shu.edu.cn
* updates: centos.ustc.edu.cn
========================================== N/S matched: vim ===========================================
beakerlib-vim-syntax.noarch : Files for syntax highlighting BeakerLib tests in VIM editor
fluxbox-vim-syntax.noarch : Fluxbox syntax scripts for vim
neovim.x86_64 : Vim-fork focused on extensibility and agility
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
python2-neovim.noarch : Python client to Neovim
python34-neovim.noarch : Python client to Neovim
vim-X11.x86_64 : The VIM version of the vi editor for the X Window System
vim-common.x86_64 : The common files needed by any version of the VIM editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements
vim-filesystem.x86_64 : VIM filesystem layout
vim-go.x86_64 : Go development plugin for Vim
vim-gtk-syntax.noarch : Vim syntax highlighting for GLib, Gtk+, Gstreamer, and more
vim-jellybeans.noarch : A colorful, dark color scheme for Vim
vim-minimal.x86_64 : A minimal version of the VIM editor
vim-toml.noarch : Vim syntax for TOML
vim-vimoutliner.noarch : Script for building an outline editor on top of Vim
xtuple-csvimp-devel.x86_64 : CSVImp development files
apvlv.x86_64 : PDF viewer which behaves like Vim
vim-fugitive.noarch : A Git wrapper so awesome, it should be illegal
vim-halibut.noarch : Syntax file for the halibut manual tool
xtuple-csvimp.x86_64 : xTuple data import utility
[root@localhost ~]# yum list |grep vim
vim-minimal.x86_64 2:7.4.160-2.el7 @anaconda
beakerlib-vim-syntax.noarch 1.17-13.el7 epel
fluxbox-vim-syntax.noarch 1.3.7-1.el7 epel
neovim.x86_64 0.2.0-2.el7 epel
protobuf-vim.x86_64 2.5.0-8.el7 base
python2-neovim.noarch 0.1.13-3.el7 epel
python34-neovim.noarch 0.1.13-3.el7 epel
vim-X11.x86_64 2:7.4.160-4.el7 base
vim-common.x86_64 2:7.4.160-4.el7 base
vim-enhanced.x86_64 2:7.4.160-4.el7 base
vim-filesystem.x86_64 2:7.4.160-4.el7 base
vim-fugitive.noarch 2.2-8.el7 epel
vim-go.x86_64 1.8-3.el7 epel
vim-gtk-syntax.noarch 20130716-1.el7 epel
vim-halibut.noarch 1.2-1.el7 epel
vim-jellybeans.noarch 1.6-1.el7 epel
vim-minimal.x86_64 2:7.4.160-4.el7 base
vim-toml.noarch 0-0.1.20180306git624f024.el7 epel
vim-vimoutliner.noarch 0.4.0-8.el7 epel
xtuple-csvimp.x86_64 0.5.4-8.el7 epel
xtuple-csvimp-devel.x86_64 0.5.4-8.el7 epel
列出rpm包組
語法: yum grouplist
[root@localhost ~]# yum grouplist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* epel: mirrors.ustc.edu.cn
* extras: mirrors.shu.edu.cn
* updates: centos.ustc.edu.cn
Available Environment Groups:
Minimal Install
Compute Node
Infrastructure Server
File and Print Server
Cinnamon Desktop
MATE Desktop
Basic Web Server
Virtualization Host
Server with GUI
GNOME Desktop
KDE Plasma Workspaces
Development and Creative Workstation
Available Groups:
Compatibility Libraries
Console Internet Tools
Development Tools
Educational Software
Electronic Lab
Fedora Packager
General Purpose Desktop
Graphical Administration Tools
Haskell
Legacy UNIX Compatibility
Milkymist
Scientific Support
Security Tools
Smart Card Support
System Administration Tools
System Management
TurboGears application framework
Xfce
Done
安裝rpm包
語法: yum install [-y] [包名]
說明: 如果有依賴的包,會把依賴的包同時安裝上,如果不加‘-y’選項,則會以與用戶交互的方式安裝。首先是列出需要安裝的rpm包,然後會問用戶是否需要安裝,輸入‘y’則安裝,輸入‘n’則不安裝,這樣太麻煩,所以直接加上‘-y’選項,省略與用戶之間的交互。
安裝rpm包組
語法: yum groupinstall [-y] [包的組名]
如果不知道組名,可用yum grouplist查看(註:進行安裝時只能用英文名)。
卸載rpm包
語法: yum remove [-y] [包名]
說明: ‘-y’選項同install的用法,需要註意的是,在使用該命令進行卸載時會將目標文件所依賴的所有包同時刪除,所以要謹慎使用!
升級rpm包
語法: yum update [-y] [包名]
說明: 如果不加包名,則會升級系統內所有包以及系統本身(慎用,一般只在剛安裝完系統時使用
查看某個命令是由哪個包提供的
語法: yum provides "/*/命令名"
[root@localhost ~]# yum provides "/*/createrepo"
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* epel: mirrors.sohu.com
* extras: mirrors.shu.edu.cn
* updates: centos.ustc.edu.cn
createrepo-0.9.9-28.el7.noarch : Creates a common metadata repository
Repo : base
Matched from:
Filename : /usr/lib/python2.7/site-packages/createrepo
Filename : /usr/share/createrepo
Filename : /usr/bin/createrepo
Filename : /etc/bash_completion.d/createrepo
createrepo-0.9.9-28.el7.noarch : Creates a common metadata repository
Repo : @base
Matched from:
Filename : /usr/bin/createrepo
Filename : /etc/bash_completion.d/createrepo
說明:一般為/usr/bin/XXX的才是正確的
yum搭建本地光盤yum源
掛載光盤——刪除/etc/yum.repos.d/目錄所有repo文件——創建新文件dvd.repo——清除原有緩存‘yum clean all’
[root@localhost ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
備份原.repo文件
[root@localhost ~]# cd /etc/yum.repos.d 切換目錄
[root@localhost yum.repos.d]# ls
CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Sources.repo CentOS-fasttrack.repo
CentOS-CR.repo CentOS-Media.repo CentOS-Vault.repo
[root@localhost yum.repos.d]# rm -rf ./*
刪除原有repo文件
[root@localhost yum.repos.d]# vim dvd.repo
“
[dvd]
name=install dvd
baseurl=file:///mnt
enable=1
gpgcheck=0
”
此部分內容除baseurl目錄根據個人實際操作更改外,其余內容固定。
[root@localhost yum.repos.d]# yum clean all
清除系統原有緩存
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Cleaning repos: dvd
Cleaning up everything
Cleaning up list of fastest mirrors
[root@localhost ~]# yum list
……
Available Packages 還未安裝的可安裝rpm包的庫都變成dvd
ypserv.x86_64 2.31-8.el7 dvd
yum-langpacks.noarch 0.4.2-7.el7 dvd
yum-plugin-aliases.noarch 1.1.31-40.el7 dvd
yum-plugin-changelog.noarch 1.1.31-40.el7 dvd
yum-plugin-tmprepo.noarch 1.1.31-40.el7 dvd ……
如果不想使用本地yum源,需要刪除/etc/yum.repos.d/dvd.repo文件,然後恢復原來的配置文件
yum保留已經安裝過的包
可以設置使yum保留已經下載的rpm包,供以後升級或重新安裝時使用。
修改/etc/yum.conf即可:
[main]
cachedir=/home/soft1/yumcache
keepcache=1 #這裏默認為0,修改成1
debuglevel=2
cachedir是放置下載的包的地方,可以修改成自己想放置的位置。
keepcache為1時表示保存已經下載的rpm包
也可以使用yumdownloader命令,只下載不安裝,默認下載到當前目錄,沒有這個命令可以安裝yum-util包
[root@localhost ~]# yum install -y yum-utils-1.1.31-45.el7.noarch
[root@localhost ~]# yumdownloader yum-utils.noarch 0:1.1.31-45.el7
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* epel: mirrors.sohu.com
* extras: mirrors.shu.edu.cn
* updates: centos.ustc.edu.cn
No Match for argument 0:1.1.31-45.el7
yum-utils-1.1.31-45.el7.noarch.rpm | 119 kB 00:00:00
[root@localhost ~]# ls
1.sh 2.sh anaconda-ks.cfg logdir2018-04-30.log logfile
1.txt 2.txt loddir_2018-04-30.log logdir_2018-04-30.log yum-utils-1.1.31-45.el7.noarch.rpm
利用http服務搭載局域網yum源(這裏使用nginx提供http服務)
需要註意的是如果你的nginx服務正常,端口也綁定了80,瀏覽器不能正常訪問的話,請關閉防火墻或者設置放行80端口,關閉selinux
[root@localhost ~]# systemctl stop firewalld
- 先創建一個目錄,作為存在rpm包的目錄
mkdir /data/yumdata
- 拷貝ISO鏡像文件中的rpm包到/data/yumdata/
mount /dev/cdrom /mnt/ cp /mnt/Packages/*rpm /data/yumdata
【小常識】 可以在/data/yumdata/下面創建子目錄,然後把rpm包放到子目錄下面,也可以被識別到
- 創建repository
createrepo /data/yumdata/``` 如果rpm包有增加,需要執行
createrepo --update /data/yumdata/
-
安裝nginx,提供http服務
yum install epel-release yum install nginx
當然,如果無法使用yum,需要下載nginx源碼包,並編譯安裝
配置nginx.conf,使其可以通過IP地址訪問到/data/yumdata
參考配置文件:
server {
listen 80 default_server;
listen [::]:80 default_server;
servername ;
root /data/yumdata;location / { autoindex on; //這一步必須要有,這是為了提供目錄瀏覽 } error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { }
}
- 客戶端上配置repo文件
cd /etc/yum.repos.d mkdir bak mv *.rep bak/ //把系統自帶的repo挪走 vim my.repo //內容如下 [aming] name=myserver baseurl=http://192.168.133.140 gpgcheck=0 enabled=1
- 做一個鏡像yum源
比如可以把系統默認的源給鏡像到局域網來,思路是用rsync工具把遠程的rpm包同步到這臺局域網的對應目錄下即可。rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /data/yumdata/
- 當局域網的rpm庫有更新時,除了服務端執行“createrepo –update /data/yumdata/”外,客戶端上也需要執行
yum clean all //刪除緩存`
yum更換國內源
可以直接修改配置文件
vi /etc/yum.repos.d/CentOS-Base.repo
[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/ #把這一行的#號去掉,把後面的 http地址改成國內的源地址
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
也可以刪除默認yum源,然後使用wget或者 curl -O命令建立新yum源:
[root@localhost yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1572 100 1572 0 0 8959 0 --:--:-- --:--:-- --:--:-- 8982
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo
說明: 執行完curl命令後,原有yum源文件CentOS-Base.repo被替換成CentOS7-Base-163.repo。查看該yum源文件:
[root@localhost yum.repos.d]# vim CentOS7-Base-163.repo
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 - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates - 163.com
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
"CentOS7-Base-163.repo" 41L, 1572C
安裝擴展源epel
安裝一個擴展源文件(epel-release)
[root@localhost yum.repos.d]yum install -y epel-release
[root@localhost yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-fasttrack.repo CentOS-Vault.repo
CentOS-CR.repo CentOS-Media.repo epel.repo
CentOS-Debuginfo.repo CentOS-Sources.repo epel-testing.repo
####安裝完成後,yum.repos.d/下增加“epel.repo”、“epel-testing.repo”兩個文件:
[root@localhost yum.repos.d]# cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
……
查看:
[root@localhost yum.repos.d]# yum list
……
zulucrypt-doc.noarch 5.0.1-1.el7 epel
zulucrypt-libs.x86_64 5.0.1-1.el7 epel
zvbi.x86_64 0.2.35-1.el7 epel ……
增加了很多來自epel庫的rpm包。
7.3源碼包安裝
一般來說,源碼包在解壓縮後,會有readme之類的說明文件,裏面會有安裝說明。我們可以通過查看這個文件來知道怎麽安裝,不過一般的安裝步驟基本分三步(./configuer配置參數,make編譯,makeinstall安裝)
先下載一個源碼包!
為了規範 定義所有源碼包放到目錄“/usr/local/src/”!!!
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.32.tar.gz
下載完後解壓該文件:
[root@localhost src]# tar zxvf httpd-2.2.32.tar.gz
[root@localhost src]# ls
httpd-2.2.32 httpd-2.2.32.tar.gz
查看文件httpd-2.2.32的內容:
[root@localhost src]# cd httpd-2.2.32
[root@localhost httpd-2.2.32]# ls
ABOUT_APACHE CHANGES httpd.dsp libhttpd.dep NOTICE server
acinclude.m4 config.layout httpd.mak libhttpd.dsp NWGNUmakefile srclib
Apache.dsw configure httpd.spec libhttpd.mak os support
build configure.in include LICENSE README test
BuildAll.dsp docs INSTALL Makefile.in README.platforms VERSIONING
BuildBin.dsp emacs-style InstallBin.dsp Makefile.win README-win32.txt
buildconf httpd.dep LAYOUT modules ROADMAP
安裝Apache:
[root@localhost httpd-2.2.32]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
checking for working mkdir -p... yes
……
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
當某命令運行結束後,使用"echo $?"檢驗其是否正確:
[root@localhost httpd-2.2.32]# echo $?
1
當該值為0時表示上一條命令正確,如果值為1則錯誤。
此處值為1,即上面命令錯誤,查看其安裝過程發現“checking for gcc... no”——表示“gcc”編譯器不存在,所以需要先安裝gcc編譯器:
[root@localhost httpd-2.2.32]# yum install -y gcc
…………
完畢!
[root@localhost httpd-2.2.32]# ./configure --prefix=/usr/local/apache2
再次安裝。
[root@localhost httpd-2.2.32]# echo $?
0
檢測,正確。
[root@localhost httpd-2.2.32]# make 編譯!
……
[root@localhost httpd-2.2.32]# echo $?
0
[root@localhost httpd-2.2.32]# make install
……
[root@localhost httpd-2.2.32]# echo $?
0
每次命令執行完後用“echo $?”進行檢測,確保其正確。
安裝完成!
2018-05-28筆記(軟件包安裝和卸載)