安装软件包的三种方法

                     (安装与卸载)

  1. rpm工具

  2. yum工具  (支持自动安装依赖的包)

  3. 源码包    安装源码包,需要我们把源代码编译成可执行的二进制文件




           rpm包介绍


挂载一下光驱看一下rpm包

mount /dev/cdrom /mnt 挂在到/mnt下

ls /Packages   查看一下里面的rpm包


画圈的依次为:rpm包格式

包名、版本号、发布版本号、平台



          rpm工具使用

rpm -ivh rpm包文件  //安装

-i:表示安装

-v:表示可视化

-h:表示显示安装进度


如:安装一个rpm包(在/mnt/Packages/下)


升级一个rpm包

rpm -Uvh rpm包文件 //升级


卸载rpm包

rpm -e 包名  (zsh-5.0.2-28.el7.x86_64.rpm  包名为zsh(以“-”分隔))

卸载时没有提示算正常卸载 (卸载一个包时首先要把它的依赖包先卸载才行)


查询

rpm -qa  //查询安装了的包

rpm -q 包名 //查询一个包是否安装

rpm -qi 包名 //获取一个已经安装了的rpm包的相关信息


rpm -ql 包名  //列出一个rpm包的安装文件

rpm -qf 文件的绝对路径 //可以知道该文件是属于哪个rpm包的

rpm -qf `which cd` 这样也可以实现查看一个文件所属的rpm包 (这里的cd是无别名,有别名的话不可以)

      


              yum工具用法

yum 可以自动帮我们安装所需安装包的依赖包(优胜于rpm工具)

yum list  //列出可用rpm包

ls /ect/yum.repos.d


搜索rpm包

1.yum search [相关关键词]

2.使用grep过滤出想要的包名

yum list |grep 'vim'


yum install [-y] [rpm包名] //安装rpm包


yum grouplist //查看可用的组


yum remove [-y][rpm包名]  //卸载同时把依赖包卸载


yum update [-y][包名]

不加包名整个系统都会更新


yum provides "/*/vim"

使用这种通配的格式查找到底vim是使用哪个包



         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

 vi /etc/yum.repos.d/dvd.repo

 加入以下内容保存

 [dvd]

 name=install dvd

 baseurl=file:///mnt

 enable=1

 gpcheck=0 


 

(4)清除一下以前的缓存

 yum clean all  (yum makecache)

 然后 yum list |less 可以看到最右边有出血dvd库的,这些包就是还没安装的


(5)安装

 yum install [-y] GConf2

   

         

         yum更换国内源

自带的yum 安装源是国外的,下载时会比较慢


删除刚创建的文件dvd 恢复备份

rm -f dvd.repo

cp /etc/yum.repos.d.bak/* /etc/yum.repos.d

(mv /etc/yum.repos.d.bak /etc/yum.repos.d)


然后 yum list (必须执行,生成缓存,方便使用)


安装国内源:

1.


2.输入命令安装国内源地址

 wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

 (因为删了centos-base.repo 且wget命令不存在,选用下面的那条命令 或者先安装wget)

 或者

 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo


3.再yum list




           


          yum下载rpm包


安装扩展源epel

yum install -y epel-release

yum list



yum下载rpm包


如果我们下载的包已经下载过了会提示我们包已经安装



下载以后到底有没有安装呢?使用 rpm -q 包名查看


如何查看包被下载到何处?

为什么是在epel/package?可以查看下载时依赖的源


指定下载的路径

yum install [-y] 包名 --downloadonly --downloaddir=路径

yum install -y zstd --downloadonly --downloaddir=/tmp/






    如果目录下已经下载了rpm包,我们可以

    yum reinstall [-y] 包名 --downloadonly

    


                                 


              源码包

 (源码包尽量放在/usr/local/src目录下)

1.先进入到/usr/local/src目录下 //cd /usr/local/src

2.使用wget下载源码包(如果没有wget工具:yum install -y wget)

 wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.2.34.tar.gz


(源码包根据自己需求具体下载。我这里使用阿铭老师提供的地址:https://coding.net/u/aminglinux/p/resource/git/blob/master/README.md)



3.解压源码包(这里是tar.gz)

 tar -zxvf httpd-2.2.34.tar.gz


说明文档 README     安装文档 INSTALL



说明文档 README (介绍该源码包)

安装文档INSTALL(有安装步骤命令)

安装过程  (.configure --help 可以看到该包的功能)

1.  ./configure --prefix=路径  (指定安装路径,首先要进入到安装源文件目录下;./表示当前)

  ./configure --prefix=/usr/local/apache2

   

.判断命令是否执行成功

如果看不懂这些英文指示

使用 echo $? (验证上一条命令是否成功,0:成功 ;1:失败)

如果看到 gcc no gcc不存在 安装 yum install -y gcc

返回值为1 安装gcc后再执行上一条命令

./configure --prefix=/usr/local/apache2


正常执行 echo $? 返回0 后就是成功生成Makefile


2.执行命令 make 进行编译

执行完命令make 后 然后查看一下是否执行成功 echo $?

返回0 成功继续下一步


3.make install

执行成功

要删除这个包直接把该目录(apache2)删除

安装源码包一定要到官方下载