安装软件包的三种方法,rpm包介绍,rpm工具用法,yum工具用法,yum搭建本地仓库, yum更换国内源,yum下载rpm包,源码包安装

一、安装软件包的三种方法

rpm工具

与Windows下的exe比较类似,安装路径和文件名基本上是固定好的。

yum工具

属于Python开发的工具,操作对象是rpm包;yum工具最大的优势在于可以联网下载所需要的rpm包,然后自动安装。

源码包

需要用编译器把源码包编译成可执行的文件;优点是配置灵活,缺点安装难度较大。

二、rpm包介绍

挂载系统安装镜像,先检查VMware右下角的小光驱图标是否点亮,如果没有,点击连接就可以点亮,将光盘连接到Linux系统上。
这里写图片描述
挂载光驱,挂载到/mnt/目录下,然后进入/mnt/目录下,查看一些文件和目录

[root@aming01 ~]# ls /mnt/
[root@aming01 ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@aming01 ~]# ls
666  anaconda-ks.cfg
[root@aming01 ~]# ls /mnt/
CentOS_BuildTag  EULA  images    LiveOS    repodata              RPM-GPG-KEY-CentOS-Testing-7
EFI              GPL   isolinux  Packages  RPM-GPG-KEY-CentOS-7  TRANS.TBL

其中,有一个packages的目录中有很多.rpm文件,就是rpm包

[root@aming01 Packages]# cd Packages/

yajl-2.0.4-4.el7.x86_64.rpm
yelp-3.22.0-1.el7.x86_64.rpm
yelp-libs-3.22.0-1.el7.x86_64.rpm
yelp-tools-3.18.0-1.el7.noarch.rpm
yelp-xsl-3.20.1-1.el7.noarch.rpm
ypbind-1.37.1-9.el7.x86_64.rpm
ypserv-2.31-10.el7.x86_64.rpm
yp-tools-2.14-5.el7.x86_64.rpm
yum-3.4.3-154.el7.centos.noarch.rpm
yum-langpacks-0.4.2-7.el7.noarch.rpm

从左到右可以划分为几个部分:包名、版本号、发布版本号、平台。

三、rpm工具的用法

安装rpm包,# rpm -ivh zsh-5.0.2-25.el7.x86_64.rpm

-i表示安装

-v表示可视化

-h表示显示安装进度

–force表示强制安装

–nodeps表示当要安装的rpm包依赖于其他包时,即使其他包没有安装,也要安装这个包

安装rpm包:rpm -ivh zlib-1.2.7-17.el7.x86_64.rpm

[

root@aming01 Packages]# rpm -ivh zlib-1.2.7-17.el7.x86_64.rpm
准备中...                          ################################# [100%]
    软件包 zlib-1.2.7-17.el7.x86_64 已经安装

升级rpm包,#rpm -Uvh zlib-1.2.7-17.el7.x86_64.rpm

[root@aming01 Packages]# rpm -Uvh zlib-1.2.7-17.el7.x86_64.rpm
准备中...                          ################################# [100%]
    软件包 zlib-1.2.7-17.el7.x86_64 已经安装

卸载rpm,rpm -e 包名 #rpm -e zsh,不显示直接卸载属于正常

查询安装的包#rpm -qa,则出现很多安装过的包,可以卸载的

[root@aming01 Packages]# rpm -qa zlib
zlib-1.2.7-17.el7.x86_64
[root@aming01 Packages]# rpm -qa
firewalld-0.4.4.4-6.el7.noarch
grub2-common-2.02-0.64.el7.centos.noarch
grub2-2.02-0.64.el7.centos.x86_64
setup-2.8.71-7.el7.noarch
NetworkManager-team-1.8.0-9.el7.x86_64
basesystem-10.0-7.el7.centos.noarch
audit-2.7.6-3.el7.x86_64
bind-license-9.9.4-50.el7.noarch
irqbalance-1.0.7-10.el7.x86_64

查询指定包是否安装,rpm -q [包名]

[root@aming01 Packages]# rpm -q xz
xz-5.2.2-1.el7.x86_64
[root@aming01 Packages]# rpm -q ypserv
未安装软件包 ypserv 

查询指定包信息,rpm -[qi] [包名]

[root@aming01 Packages]# rpm -qi zlib
Name        : zlib
Version     : 1.2.7
Release     : 17.el7
Architecture: x86_64
Install Date: 20180424日 星期二 233246秒
Group       : System Environment/Libraries
Size        : 185710
License     : zlib and Boost
Signature   : RSA/SHA256, 20161121日 星期一 050507秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : zlib-1.2.7-17.el7.src.rpm
Build Date  : 20161106日 星期日 020915秒
Build Host  : worker1.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.zlib.net/
Summary     : The compression and decompression library
Description :
Zlib is a general-purpose, patent-free, lossless data compression
library which is used by many different programs.

列出包安装的文件,rpm [-ql] [包名]

[root@aming01 Packages]# rpm -ql zlib
/usr/lib64/libz.so.1
/usr/lib64/libz.so.1.2.7
/usr/share/doc/zlib-1.2.7
/usr/share/doc/zlib-1.2.7/ChangeLog
/usr/share/doc/zlib-1.2.7/FAQ
/usr/share/doc/zlib-1.2.7/README

根据绝对路径查询是由哪个包安装的,rpm [-qf] [绝对路径]

[root@aming01 Packages]# rpm -qf /usr/bin/vi
vim-minimal-7.4.160-2.el7.x86_64
[root@aming01 Packages]# rpm -qf /usr/bin/vi /usr/bin/cd
vim-minimal-7.4.160-2.el7.x86_64
bash-4.2.46-28.el7.x86_64

特殊命令反引号

“ 反引号的作用是先执行反引号内的命令,然后输出给当前命令行上执行

[root@aming01 Packages]# rpm -qf /usr/bin/mkdir
coreutils-8.22-18.el7.x86_64
[root@aming01 Packages]# rpm -qf `which mkdir`
coreutils-8.22-18.el7.x86_64


四、yum工具用法

列出所有可用的rpm包,# yum list
yum配置文件;/etc/yum.repos.d

[root@aming01 Packages]# 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
[root@aming01 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo

配置文件base(yum仓库)的信息

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

搜索rpm包,yum search [相关关键词]

[root@aming01 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirror.navercorp.com
===================================== N/S matched: vim =====================================
protobuf-vim.x86_64 : Vim syntax highlighting for Google Protocol Buffers descriptions
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-minimal.x86_64 : A minimal version of the VIM editor

  名称和简介匹配 only,使用“search all”试试。

这样搜索的不精确,要想更精确的搜索,可用这样的方法

[root@aming01 Packages]# yum list |grep 'vim'
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-minimal.x86_64                          2:7.4.160-2.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-4.el7            base     
vim-minimal.x86_64                          2:7.4.160-4.el7            base 

安装包的命令,yum install [-y] [包名],-y表示不再询问是否安装

[root@aming01 Packages]# yum install -y zziplib
已加载插件:fastestmirror
base                                                                 | 3.6 kB  00:00:00     
extras                                                               | 3.4 kB  00:00:00     
updates                                                              | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirror.navercorp.com
正在解决依赖关系
--> 正在检查事务
---> 软件包 zziplib.x86_64.0.0.13.62-5.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

列出可用组,yum grouplist

[root@aming01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirror.navercorp.com
可用的环境分组:
   最小安装
   基础设施服务器
   计算节点
   文件及打印服务器
   基本网页服务器
   虚拟化主机
   带 GUI 的服务器

输入LANG=en,可以英文显示

安装rpm包组,yum groupinstall [-y] [包的组名],可以用yum grouplist查看组名,用英文显示。

卸载rpm包,yum remove [-y] [包名],在卸载时会将目标文件所依赖的所有包同时卸载。

升级rpm包,yum update [-y] [包名],如果不加包名,则会升级系统内所有包和系统本身(一般在刚安装完系统是使用)



yum provides命令,通过已知的命令来搜索rpm包名,/*/通配符,命令路径不确定时,可使用代表路径

[root@aming01 Packages]# yum provides "/*/vim"
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.tuna.tsinghua.edu.cn
base/7/x86_64/filelists_db                                           | 6.9 MB  00:00:00     
extras/7/x86_64/filelists_db                                         | 519 kB  00:00:00     
updates/7/x86_64/filelists_db                                        | 1.3 MB  00:00:00     
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
源    :base
匹配来源:
文件名    :/usr/share/cmake/editors/vim


五、yum搭建本地仓库

步骤:

1.挂载镜像到/mnt/目录

2.cp -r /etc/yum.repos.d /etc/yum.repos.d.bak 将文件和目录一同拷贝到另一个位置

3.vim /etc/yum/repos.d/dvd.repo //内容如下 :

[dvd]  

name=install dvd

baseurl=file:///mnt

enable=1

gpgcheck=0

4.yum clean all

5.yum list

[root@aming01 Packages]# ls /mnt/
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@aming01 Packages]# cd ~
[root@aming01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
[root@aming01 ~]# cd /etc/yum.repos.d
[root@aming01 yum.repos.d]# rm -rf ./*
[root@aming01 yum.repos.d]# vi dvd.repo


~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~                                                                                           
~             
[root@aming01 yum.repos.d]# yum clean all
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
There are no enabled repos.
 Run "yum repolist all" to see the repos you have.
 To enable Red Hat Subscription Management repositories:
     subscription-manager repos --enable <repo>
 To enable custom repositories:
     yum-config-manager --enable <repo>
[root@aming01 yum.repos.d]# yum list

配置完成后便可直接使用yum安装所需要的rpm包。如果不想使用本地yum源,需要删除/etc/yum.repos.d/dvd.repo文件,然后恢复原来的配置文件。

六、yum更换国内源

进入到cd /etc/yum.repos.d/ 目录;然后删除CentOS-Base.repo文件;

[root@aming01 yum.repos.d]# cd /etc/yum.repos.d/
[root@aming01 yum.repos.d]# ls
[root@aming01 yum.repos.d]# rm -rf CentOs-Base.repo
[root@aming01 yum.repos.d]# ls

使用 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo或者curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo;命令去下载CentOS7-Base-163.repo,然后vim打开CentOS7-Base-163.repo,查看内容

[root@aming01 yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS-Base-163.repo
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   162  100   162    0     0   1582      0 --:--:-- --:--:-- --:--:--  1588
[root@aming01 yum.repos.d]# ls
CentOS-Base-163.repo

这里写图片描述
这里写图片描述
然后yum list查看包;完成

七、yum下载rpm包

安装扩展源epel;yum install -y epel-release

[root@aming01 yum.repos.d]# yum install -y epel-release
已加载插件:fastestmirror
base                                                                 | 3.6 kB  00:00:00     
extras                                                               | 3.4 kB  00:00:00     
updates                                                              | 3.4 kB  00:00:00     
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 epel-release.noarch.0.7-11 将被 安装
--> 解决依赖关系完成

依赖关系解决

安装完成后,增加了epel.repo、epel-testing.repo两个文件,查看epel.repo文件

[root@aming01 yum.repos.d]# ls
CentOS7-Base-163.repo  epel.repo  epel-testing.repo  yum.repos.d  yum.repos.d.tar
[root@aming01 yum.repos.d]# cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
metalink=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

[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1

[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[root@aming01 yum.repos.d]# 

然后yum list,有很多包出来;也可以使用 yum list |grep epel 查看

八、yum下载rpm包

yum install -y 包名 –downloadonly ,该命令是下载rpm包但不安装

[root@aming01 yum.repos.d]# yum install -y zsh --downloadonly
已加载插件:fastestmirror
epel/x86_64/metalink                                                 | 5.3 kB  00:00:00     
epel                                                                 | 4.7 kB  00:00:00     
epel/x86_64/updateinfo         FAILED                                          
http://mirrors.sohu.com/fedora-epel/7/x86_64/repodata/f85923f6cfc52b739f50919965612b06066dbb784475a2580615b47713cf4435-updateinfo.xml.bz2: [Errno 14] HTTP Error 404 - Not Found
正在尝试其它镜像。
To address this issue please refer to the below knowledge base article 

下载的包默认的保存路径为:ls -l /var/cache/yum/x86_64/7/epel/packages/;但也要看你的下载的仓库在哪里,假如你下载是的仓库是updates,那就是 ls -l /var/cache/yum/x86_64/7/updates/packages/;
这里写图片描述
其实我们还可以自定义RPM包的安装路径;加参数 –downloaddir=路径

yum install -y 包名 –downloadonly –downloaddir=/tmp/(自定义),然后ls /tmp/
这里写图片描述
这里写图片描述
如果下载一个已安装的包(提示包已安装,没有任何操作)时,可以用yum reinstall 重新安装
这里写图片描述

九、源码包安装

源码包下载路径按约定统一放到/usr/local/src/里
这里写图片描述
解压httpd-2.2.32.tar.gz压缩包
这里写图片描述
解压完成后,到httpd-2.2.34目录下去
这里写图片描述
指定安装路径.:./configure –prefix=/usr/local/nginx
这里写图片描述
这里写图片描述
如果不知道输入的命令是否正确,可以用echo $?查看 ,若是非零,表示上一条命令是错的;

上面显示的是gcc不存在,安装gcc

这里写图片描述
安装好gcc,继续指定安装路径../configure –prefix=/usr/local/nginx,配置过程中会生成make file,是用来编译的文件

然后使用make编译工具,根据分配的cpu数量,来看编译速度的;编译完成后,用echo $?检测,结果为0代表正确。

接着make install ,它会把编译完成的二进制文件、配置文件目录放入到 prefix 指定的目录下;再用echo $?检测。

查看生成的目录/usr/local/nginx/
这里写图片描述
注意:下载源码包一定要去官方网站或者可信任的站点

扩展:

  1. yum保留已经安装过的包 http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml

  2. 搭建局域网yum源 http://ask.apelearn.com/question/7627

  3. 把源码包打包成rpm包 https://jin-yang.github.io/post/linux-create-rpm-package.html

猜你喜欢

转载自blog.csdn.net/iamfishhh/article/details/80504174