说明:此文首发于本人原创公众号【媛测】中,如有转载,请著明出处!
在windows系统下安装软件很简单,下载软件包后双击.exe文件,点击下一步即可。然而在linux安装软件就没那么容易了,不同的Linux发行版有所差异,下面以centos7系统为例说明,如何在linux下安装软件。
linux系统下安装软件一般有3种方法:①rpm工具 ②yum工具 ③源码包安装
目录
一、三种安装方式
在Linux下安装软件包,主要有3种办法
(1)rpm工具(redhat package manager,手动安装,难点在于包的依赖关系)
rpm包类似于windows下的.exe文件,安装路径和文件名基本都是固定的。
rpm -ivh [rpm完整包名]
(2)yum工具(python开发出来的工具,操作对象rpm包,能自动解决软件包的依赖关系,是最常用的方式)
yum install -y 【包名简称】
(3)源码包(需要通过编译器把该源码包编译成可执行的文件)【安装难度大】
./configure---->make---->make install
二、 rpm包及rpm工具使用
要想使用rpm工具,得先有rpm包。
1、rpm包格式说明
上图所示:
abrt是包名、2.1.11是版本信息、48.el7.centos是发布版本号、x86_64是运行平台;
另外有一些rpm包没有写具体平台而是noarch:说明没有平台限制。
2、rpm工具用法
(1)rpm常用选项:
-a:查询所有已安装rpm包
-e:删除指定rpm包
-f:查询指定rpm包
-i:显示指定rpm包的详细信息
-h:显示安装rpm包列出标记
-v:显示指令的执行过程,即可视化过程
-U:升级指定rpm包
-q:使用询问模式
-l:显示指定rpm包的文件列表
(2)常用命令
安装rpm包:rpm -ivh [rpm包名] ; 【注意包名一定要写全到.rpm,不能简写】
升级rpm包:rpm -Uvh [rpm包名]; 【注意同上】
卸载rpm包:rpm -e [rpm包名] ;如:rpm -e bc;【这里需要注意的是:卸载可以不用写全包名】
查看已安装rpm包:rpm -q [指定rpm包名] 或者rpm -qa 表示列出所有已安装包 如:rpm -q vim-enhanced;查询所有:rpm -qa;
查看已安装rpm包的具体信息:rpm -qi [rpm包名] 如:rpm -qi vim-enhanced
列出rpm包的安装文件:rpm -ql [rpm包名] 如:rpm -ql vim-enhanced
查看某个文件属于哪个rpm包安装的:rpm -qf [文件绝对路径] 如:rpm -qf /usr/bin/vim
当某个命令忘记了绝对路径,又不想分2步来查询。那么可以后面跟which cd(这里的符号时反引号):rpm -qf `which cd` /这里写入的命令不能是带有alias的
【温馨提示】
当你执行rpm -ivh 安装rpm包的时候你会发现,其实rpm安装需要很多的依赖包,并且需要手动安装依赖后才能rpm -ivh安装。执行rpm -e 也是一样的;所以一般也很少使用rpm进行软件的安装,最常用的安装工具是yum。
二、yum工具用法
yum工具相比rpm工具的优势是:yum安装会联网自动安装依赖包,不需要手动安装依赖。还有一个好处是使用yum安装时,仅仅是写入包名即可,而rpm安装时,是需要写入包全名的。
yum配置文件路径:/etc/yum.repos.d/
1、常见的yum用法:
列出所有可用的rpm包:yum list (第一列是包名,第二列是版本号,第三列是配置文件/etc/yum.repos.d/中配置的仓库名)
精准搜索指定的rpm包:yum list | grep 'vim' (只显示出包名中包含vim的rpm包)
搜索指定名称相关的所有rpm包:yum search vim (显示所有包名和介绍中包含vim的rpm包,比较模糊)
yum安装rpm包:yum install -y 【包名简称】;-y表示安装时不再询问是否安装
yum卸载rpm包:yum remove 【包名简称】;//卸载时不要加-y选项,因为如果要卸载的依赖包又是系统所需要的,那么继续卸载有可能会导致系统异常,不加-y也可以查看到它所依赖的包都有哪些
yum更新rpm包:yum update 【包名简称】;//使用在刚安装完系统可以使用。如果系统中有已经运行了一段时间的服务,那么这时去升级可能会出现问题【注意:如果直接yum update 不加包名,则会直接升级所有包和升级系统】
查询一个命令是由哪个包来安装的:yum provides "/*/vim"
2、yum使用光盘搭建本地仓库:
当Linux不能联网的时候,我们就不能使用联网的yum源了。这时需要自己在系统中使用光盘制作yum源, 搭建本地的yum源,让它在本地中寻找RPM包。具体步骤如下:
(1)挂载光盘镜像到/mnt目录:mount /dev/cdrom /mnt
(2)删除/etc/yum.repos.d/目录下的所有repo文件(删除前注意先备份,不然等下无法还原了)
cp -r /etc/yum.repos.d/ /etc/yum.repos.d_bak/
rm -rf /etc/yum.repos.d/*
(3)创建新文件dvd.repo
vim /etc/yum.repos.d/dvd.repo,加入如下内容:
(enabled--是否可用,1可用,0不可用; gpgcheck--是否检测,0不检测,1检测)
(4)清理之前的缓存:yum clean all
(5)yum list 查看本地仓库是否配置成功(能看到自己配置的仓库名,就是成功了)
这时就能安装你需要的rpm包了!
3、配置yum.conf 保留下载的rpm包
可以设置使yum保留已经下载的rpm包,供以后升级或者重新安装时使用 。只需
修改/etc/yum.conf即可(这是个新文件)
[main]
cachedir=/home/soft1/yumcache
keepcache=1
debuglevel=2
其中cachedir是放置下载的包的地方,可以自定义
keepcache=1表示保存已经下载的rpm包,0表示不保存
到这里,你应该熟悉yum工具了。不知道你有没有注意到使用yum安装的时候会非常慢,那是因为默认的yum源是使用国外的yum仓库的。
下面我们来介绍使用国内的仓库作为yum源。
在操作之前,我们先恢复之前的yum源,否则使用的yum时会出问题的。操作如下:
rm -rf /etc/yum.repos.d
mv /etc/yum.repos.d_bak /etc/yum.repos.d
yum list (这一步必须执行,生成缓存,方便下次使用。)
4、更改国内yum仓库源:
(1)进入yum配置目录,删除CentOS-Base.repo(注意备份:mv CentOS-Base.repo CentOS-Base.repo_bak)
(2)下载一份新的国内的CentOS-Base.repo文件代替
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo 或者 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
可以打开查看一下这个文件的内容:
(3)替换成功后,安装一个rpm包测试一下,例如: yum install -y zsh
除了CentOS-Base.repo这个标准的rpm源外,还可以安装yum扩展源epel
yum install -y epel-release
5、利用yum工具下载rpm包:
(1)下载rpm包不安装:yum install [包名] -y --downloadonly ;
默认存放路径为/var/cache/yum/x86_64/7/xxx/packets ; xxx为仓库源,如:base、epel、dvd等等
(2)下载rpm包不安装,指定存放路径:yum install [包名] -y --downloadonly --downloaddir=/usr/local/src
(3)如果是已安装的rpm包:yum reinstall -y [包名] --downloadonly
三、源码包安装:
1、获取源码
下载软件源码包,一般存放在/usr/local/src,解压源码包。
2、查看INSTALL与README文件
解压后查看INSTALL与README文件,这两个文件中详细介绍了本软件的安装方法和注意事项。
3、执行configure,生成Makefile文件
执行./configure命令,生成Makefile文件。
./configure --prefix=/usr/local/xxx
常用prefix参数指定软件安装目录,当执行make install命令时,会将软件安装在此路径中。
4、执行make,从Makefile中读取指令,编译源码成二进制文件
make clean;make
PS:make clean命令用来清除上一次编译生成的目标文件。这个步骤可有可无,但为了确保编译的成功,还是加上为好。防止由于软件中含有残留的目标文件导致编译失败。
5、执行make install,将软件安装到指定目录
make install
此时二进制文件会被安装到先前configure prefix参数设置的路径中去。
说明:此文首发于本人原创公众号【媛测】中,如有转载,请著明出处!