linux下安装软件包有三种方式,rpm安装,yum在线安装,下载源码包安装
rpm工具
rpm(Redhat Package Manager)RPM软件包管理器,是以一种数据库记录的方式来将我们所需要的套件安装到Linux主机的一套管理程序。rpm包是预先在Linux机器上编译好并打包好的文件,安装起来非常快捷。但是有一个缺点:安装环境必须与编译时的一致或相当;包与包之间存在着相互依赖的情况,安装或卸载包时需要先把依赖的包安装/卸载,如果依赖的包时系统所必须的,那就不能卸载这个包。
yum工具
yum命令是在Fedora和RedHat以及SUSE中基于rpm的软件包管理器,它可以使系统管理人员交互和自动化地更细与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
源码包安装
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制码并进行安装。其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境;缺点是难度较大
首先可以 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包
语法: 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
mkdir /data/yumdata
mount /dev/cdrom /mnt/
cp /mnt/Packages/*rpm /data/yumdata
【小常识】 可以在/data/yumdata/下面创建子目录,然后把rpm包放到子目录下面,也可以被识别到
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 {
}
}
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
rsync -av rsync://mirrors.ustc.edu.cn/centos/7/os/x86_64/Packages/ /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包。
一般来说,源码包在解压缩后,会有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 $?”进行检测,确保其正确。
安装完成!
原文:http://blog.51cto.com/13736286/2121808