第七章Linux软件包安装和卸载

7.1 安装软件包的三种方法

7.2 rpm包介绍

7.3 rpm工具用法

7.4 yum工具用法

7.5 yum搭建本地仓库

7.6 yum更换国内源

7.7 yum下载rpm包

7.8/7.9源码包安装

 7.10课堂笔记

 

7.1 安装软件包的三种方法

rpm工具
#类似window的exe,不需要做太多设置,安装路径和文件名一般是固定好的
 
yum工具
#用python开发的一个工具,类似于苹果的Appstore的软件商城,操作对象也是rpm包,支持自动安装依赖包
 
源码包
#包内含各种编程语言开发的源代码,需要通过一种编译器把源码包编译成可执行的文件
 
 

7.2 rpm包介绍

 
先连接光驱
选择虚拟机右下角光盘-->右键点击连接
 
设置光驱下载
mount   /dev/cdrom   /mnt/                  #挂载光驱  
[root@localhost ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -h
文件系统        容量  已用  可用 已用% 挂载点
/dev/sda3        28G  1.3G   27G    5% /
devtmpfs        477M     0  477M    0% /dev
tmpfs           488M     0  488M    0% /dev/shm
tmpfs           488M  7.7M  480M    2% /run
tmpfs           488M     0  488M    0% /sys/fs/cgroup
/dev/sda1       197M  129M   68M   66% /boot
tmpfs            98M     0   98M    0% /run/user/0
/dev/sr0        4.2G  4.2G     0  100% /mnt
 
rpm包位置:/挂载的目录/Packages/
 
rpm包格式:
zziplib-0.13.62-5.el7.x86_64.rpm
包名-版本号(版本号.次版本号.修正版本)-发布版本号.平台
 

7.3 rpm工具用法

rpm -ivh  安装包                        #安装     h是显示进度状态
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:zsh-5.0.2-28.el7                 ################################# [100%]
 
ps:注意,除了安装,其它的rpm操作要的是包名字,不需要版本号
rpm -Uvh  安装包                      #升级安装包版本
 
rpm  -e    包名                                #卸载 
 
rpm  -qa                                         #查询安装的包
 
rpm  -q   包名                                 #查询包是否安装
[root@localhost Packages]# rpm -qi zsh
未安装软件包 zsh
[root@localhost Packages]# rpm -q lrzsz
lrzsz-0.12.20-36.el7.x86_64
 
rpm  -qi   包名                                 #查询包信息
 
rpm  -ql   包名            #列出包安装的文件(需要安装包后才可查看
[root@localhost Packages]# rpm -ql zsh
未安装软件包 zsh
[root@localhost Packages]# rpm -ql lrzsz
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
 
rpm  -qf   命令文件绝对路径            #//查看命令是由哪个包安装的
rpm -qf  ` which  命令 `                    
 #" ` "是反引号    ,命令只适用于which出来只有一行的命令(也就是找出命令的文件决定路径
[root@localhost Packages]# rpm -qf  `which cd`
bash-4.2.46-30.el7.x86_64
[root@localhost Packages]# which cd
/usr/bin/cd
[root@localhost Packages]#  rpm -qf /usr/bin/cd
bash-4.2.46-30.el7.x86_64
 
#rpm不支持自动安装依赖包,遇到安装的包需要依赖包会很麻烦,要先把全部依赖包安装完才能安装需要的包
[root@localhost Packages]# rpm -ivh texlive-2012-38.20130427_r30134.el7.x86_64.rpm
错误:依赖检测失败:
    texlive-scheme-basic 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
    texlive-collection-latexrecommended 被 texlive-2:2012-38.20130427_r30134.el7.x86_6
    tex-kpathsea 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
    tex-tetex 被 texlive-2:2012-38.20130427_r30134.el7.x86_64 需要
 

7.4 yum工具用法

yum list                  #列出可用rpm包
例:zziplib-utils.x86_64                 0.13.62-5.el7           base  
            安装包名                                  版本号          仓库名
 
ls /etc/yum.repos.d/ CentOS-Base.repo       #yum配置文件核心文件(仓库在里面
 
yum search  命令        #搜索含有该命令出现的包,不太好看
[root@localhost ~]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
========================== 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”试试。
 
yum list  |grep '命令'      #搜索含有该命令出现的包,排列整齐
[root@localhost ~]# 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-4.el7            @anaconda
protobuf-vim.x86_64                         2.5.0-8.el7                base     
vim-X11.x86_64                              2:7.4.160-4.el7            base     
 
yum install  [-y]  安装包             #加-y跳过询问是否安装
 
yum grouplist   
 #把可用的组显示出来(就是选择哪种系统(比如我们刚安装系统的时候选的是最小化安装)安装的rpm包)
yum groupinstall  ‘组名(要英文)’
例: yum groupisntall 'Virtualization Host'
 
yum remove  [-y]  安装包        #卸载安装包同时卸载依赖包(这操作很危险)
 
yum update    [-y]    安装包          
#升级rpm安装包  (如果不加安装包,会默认升级系统所有的东西(系统、内核、包等)
 
yum   provides  "/*/命令"   
 

7.5 yum搭建本地仓库

      1、挂载镜像到/mnt目录
      2、cp -r /etc/yum.repos.d   /etc/yum.repos.d.bak
      3、rm -f /etc/yum.repos.d/*
      4、vim /etcyum.repos.d/dvd.repo 
     内容如下:
            [dvd]
            name=install dvd
            baseurl=file:///mnt                                #rpm在/mnt/下
            enable=1                                                #是否可用
            gpgcheck=0                                              #是否检测
 
      5、yum clean all                                          #清除缓存
      6、yum list 
 
yun list |less                           #通过管道符用less查看list
 

7.6 yum更换国内源

    1、cd /etc/yum.repos.d/
    2、rm -f dvd.repo
    3、将原来/yum.repos.d/内的文件cp回来,将核心文件CentOS-Base.repo删掉
    4、下载CentOS7-Base-163.repo 
        或者
    5、yum list
 
测试CentOS7-Base-163.repo是否为163文件
    1、现将CentOS7-Base-163.repo改名为CentOS7-Base-163.repo.bak
[root@localhost yum.repos.d]# mv CentOS7-Base-163.repo CentOS7-Base-163.repo.bak
[root@localhost yum.repos.d]# ls
CentOS-CR.repo         CentOS-Sources.repo    CentOS7-Base-163.repo.bak
CentOS-Debuginfo.repo  CentOS-Vault.repo
CentOS-Media.repo      CentOS-fasttrack.repo
 
    2、 yum repolist all                   
    3、安装一个包,发现不行
    [root@localhost yum.repos.d]# yum install zsh
Failed to set locale, defaulting to C
Loaded plugins: 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>
 
4、将CentOS7-Base-163.repo.bak改回CentOS7-Base-163.repo
5、 yum repolist all   
 
6、再次安装一个包,发现可以下载安装了
[root@localhost yum.repos.d]# yum install zsh
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package zsh.x86_64 0:5.0.2-28.el7 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===============================================================================
Package       Arch             Version                   Repository      Size
===============================================================================
Installing:
zsh           x86_64           5.0.2-28.el7              base           2.4 M
 
Transaction Summary
===============================================================================
Install  1 Package
 
Total download size: 2.4 M
Installed size: 5.6 M
Is this ok [y/d/N]:
 

7.7 yum下载rpm包

1、安装扩展源epel

yum install -y epel-release               #安装
 
yum list  |grep epel                           #通过管道符查看

2、yum下载rpm包

yum install   包名   --downloadonly       #downloadonly时仅仅下载不安装
========================================================================
Package      架构            版本                  源             大小
========================================================================
正在安装:
zsh          x86_64          5.0.2-28.el7          base          2.4 M
 
事务概要
========================================================================
安装  1 软件包
 
总下载量:2.4 M
安装大小:5.6 M
Background downloading packages, then exiting:
zsh-5.0.2-28.el7.x86_64.rpm                        | 2.4 MB   00:06     
exiting because "Download Only" specified
 
ls  /var/cache/yum/x86_64/7/       #默认存放下载的rpm包的路径
 
#查看下载时包存放的源为base,所以zsh包存放在/base/packages/下
[root@localhost ~]# ls /var/cache/yum/x86_64/7/base/packages/
zsh-5.0.2-28.el7.x86_64.rpm
 
yum install    包名   --downloadonly   --downloaddir=路径     
#指定下载存放的路径
[root@localhost ~]# yum install vim-enhanced --downloadonly --downloaddir=/tmp/xin/
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
软件包 2:vim-enhanced-7.4.160-4.el7.x86_64 已安装并且是最新版本
无须任何处理
 
yum reinstall   包名   --downloadonly   --downloaddir=路径
#reinstall重新安装
[root@localhost ~]# yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp/xin/
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 vim-enhanced.x86_64.2.7.4.160-4.el7 将被 已重新安装
 

7.8/7.9源码包安装 

cd  /usr/local/src/                           #/usr/local/src/放置源码包路径
 
wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz
#下载apache源码包
如果发现下载不了apache源码包,去 r.aminglinux.com 上下载
 
正在解析主机 mirrors.cnnic.cn (mirrors.cnnic.cn)... 101.6.8.193, 2402:f000:1:408:8100::1
正在连接 mirrors.cnnic.cn (mirrors.cnnic.cn)|101.6.8.193|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9098780 (8.7M) [application/octet-stream]
正在保存至: “httpd-2.4.34.tar.gz”
 
100%[===========================================>] 9,098,780   5.82MB/s 用时 1.5s   
 
2018-08-05 16:59:27 (5.82 MB/s) - 已保存 “httpd-2.4.34.tar.gz” [9098780/9098780])
[root@localhost src]# ls
httpd-2.4.34.tar.gz
 
tar zxvf httpd-2.4.34.tar.gz                               #解压apache包
 
解压完后不知道怎么安装可以查看解压好的包,查看 INSTALL、README 文档
 
echo $?            #检测上调命令是否执行成功错误,0成功,1错误
启动源码包需要的三步(每一步执行完后都要用echo $?检测
    1、./configure  --prefix=/usr/local/apache2  --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
#  --prefix=指定编译后包存放路径;--with 安装该包所需的其他包的存放路径
 
    2、make
    3、make install
 
卸载就是删除安装的文件,因为安装的源码包全放在一个文件
 
遇到问题:
#安装apche之前要把apr、apr-util、pare安装并编译完才能成功安装apache
ps:编译完的apr、apr-util的包要放到/httpd-2.4.34/srclib/目录下
 
安装apr、apr-util、pcre
pcre安装:
[root@localhost httpd-2.4.34]# yum install -y pcre-devel
 
apr安装
1、
[root@localhost httpd-2.4.34]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz
2、
[root@localhost httpd-2.4.34]# tar -xzvf apr-1.6.3.tar.gz
3、
cd apr-1.6.3
4、
[root@localhost apr-1.6.3]#./configure  --prefix=/usr/local/apr
yum install -y gcc
5、
[root@localhost apr-1.6.3]#make
6、
[root@localhost apr-1.6.3]#make install
 
apr-util安装
1、
2、
[root@localhost src]# tar -zxvf apr-util-1.6.1.tar.gz
3、
[root@localhost src]#  cd apr-util-1.6.1
4、
[root@localhost apr-util-1.6.1]# ./configure  --prefix=/usr/local/apache2 --with-apr=/usr/local/apr
5、
[root@localhost apr-util-1.6.1]#make
出现错误,缺少expat.h,安装expat库
yum install  -y expat-devel
安装完后再次make,
[root@localhost apr-util-1.6.1]# echo $?       #检测执行成功,无错误
0
6、
[root@localhost apr-util-1.6.1]#make install
 

7.10课堂笔记

一、raid知识
1)raid0
1、总盘 至少大于等于两块磁盘;容量以最小磁盘
2、并行写入;例两个盘时,将数据“123456”写入盘,其中一个盘写入“123”,则另外一个盘会写入“456”,这样子读写速率是其他raid的两倍
3、 安全性不好,一旦其中一块盘损坏,数据就会丢失
 
2)raid1
1、总盘至少大于等于两块磁盘;
2、全局备份;例两个盘时,将数据“123456”写入一块盘时,另一块盘也会写入“123456”,相当于备份
3、性能较差,安全性最好
 
3)raid5
1、总盘至少三块盘;其中一块盘校验盘(要求总共一块校验盘,校验盘容量不算入总盘容量)
2、用冗余算法,安全级别较高,也是并行写入;例将数据“123456”写入盘时,第一个盘写“1”,第二个盘写“3”,校验盘会将其中的数据段2通过冗余算法写入该盘;即使第一个盘损坏了,校验盘也能通过存储的数据段和第二个盘上的数据将第一个盘的数据还原
3、性能比raid1差点
 
4)raid6
1、总盘至少四块盘;其中要固定的2块校验盘
2、用比raid更高级的冗余算法,也是并行写入,写入数据 跟raid5一样
3、性能比raid5差点,安全性比raid5要高
4、支持最多两块数据盘损坏
 
5)raid10/01
1、raid10:总盘至少四块盘;前两块盘做raid1,后两块盘做raid1,然后将两个raid1做成raid0
2、raid01:总盘至少四块盘;前两块盘做raid0,后两块盘做raid0,然后将两个raid0做成raid1
 
 
二、7.3 rpm工具用法
rpm
--nodeps 表示当要安装的RPM包依赖于其他包时,即使其他包没有安装,也要安装这个包
--force 表示强制安装,即使覆盖属于其他包的文件也要安装
 
#rpm -qa  |grep  指定包名        #qa列出所有安装包,通过|grep管道过滤只列出指定包名      #用的非常多
 
 
三、7.4yum工具
yum autoremove   指定包名             #卸载包同时卸载所有依赖包
 
 
四、7.5 yum搭建本地仓库
#需要有iso镜像
#/dev/cdrom/ 是/dev/sr0/的软链接,所以挂载哪个都行
 
/repodata/     #纪录了各个包之间的依赖关系
 
yum makecache    #缓存本地yum源
 
 
五、7.6更换国内yum源
#修改仓库文件,以前的删掉,将找到的国内源粘贴
仓库目录/etc/yum.repos.d/
 
配置queens仓库
1、vim  /etc/yum.repos.d/queens.repo
[queens]
name=queens
baseurl=file://https://mirrors.tuna.tsinghua.edu.cn/centos/7/cloud/x86_64/openstack-queens/repodata/                       #queens源从三大镜像源网站找
enabled=1
gpgcheck=0
 
2、yum makecache            #   缓存本地yum源
 
 
六、补充1:构建本地yum源(搭建本地http服务器)
 
#将网上的包download到本地。然后再搭建本地yum源
准备工作:
#reposync工具在(epel扩展源在原来系统的repo文件内可下载名为epel-release)epel扩展源内的安装包是yum-utils
#通过reposync工具下载包到本地
#配置仓库文件时指定baseurl的路径就是下面存放下载包的目录
 
1、reposync -p /opt/      #下载可用所有仓库可下载的文件到/opt         (同步)
2、createrepo  -p   /opt/queens/     #创建 /repodata/依赖包目录到/queens         (做yum源
3、配置发布(ftp、  nginx  /httpd)
4、配置客户端
 
 
七、补充2:三大镜像源官网
1、阿里云      https://opsx.alibaba.com/mirror
2、中科大mirrors  (最全)   http://mirrors.ustc.edu.cn/        
 
ps:/etc/yum.conf                #yum配置文件
 keepcache=1          #1是将下载的缓存保存(保存到/yum/base/x
86_64/7/base)
posted @ 2018-08-12 14:18  最爱吃菜  阅读(566)  评论(0编辑  收藏  举报