第七章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
* base: mirrors.cn99.com
* extras: mirrors.neusoft.edu.cn
* updates: mirrors.neusoft.edu.cn
========================== 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
* epel: mirror01.idc.hinet.net
软件包 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
* epel: mirrors.ustc.edu.cn
正在解决依赖关系
--> 正在检查事务
---> 软件包 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 上下载
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz
--2018-08-05 6:59:20-- http://mirrors.cnnic.cn/apache/httpd/httpd-2.4.34.tar.gz
正在解析主机 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、
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
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:三大镜像源官网
2、中科大mirrors (最全) http://mirrors.ustc.edu.cn/
ps:/etc/yum.conf #yum配置文件
keepcache=1 #1是将下载的缓存保存(保存到/yum/base/x
86_64/7/base)