学习任务
linux软件包安装和卸载
一 . 软件包安装的三种方法
1. rpm工具安装(需手动安装依赖包)
2. yum 工具 (自动安装依赖包)
3. 源码包
二. rpm包介绍
rpm工具使用
设置光驱并挂载 打开虚拟机在右下角选择光盘图标 然后右键点连接
挂载光盘到/mnt/下
[root@qklinux-01 ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda3 28G 1.3G 27G 5% /
devtmpfs 481M 0 481M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 7.5M 484M 2% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
tmpfs 99M 0 99M 0% /run/user/0
[root@qklinux-01 ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 写保护,将以只读方式挂载
在/mnt/目录下查看光盘文件
[root@qklinux-01 ~]# cd /mnt/
[root@qklinux-01 mnt]# ls
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包
[root@qklinux-01 Packages]# ls
purple-sipe-1.20.1-2.el7.x86_64.rpm
pycairo-1.8.10-8.el7.x86_64.rpm
pygobject2-2.28.6-11.el7.x86_64.rpm
pygobject3-devel-3.22.0-1.el7_4.1.x86_64.rpm
pygpgme-0.3-9.el7.x86_64.rpm
PyGreSQL-4.0-9.el7.x86_64.rpm
pygtk2-2.24.0-9.el7.x86_64.rpm
pygtk2-libglade-2.24.0-9.el7.x86_64.rpm
pykde4-4.10.5-4.el7.x86_64.rpm
pykickstart-1.99.66.19-2.el7.noarch.rpm
rpm包的构成
pykde4-4.10.5-4.el7.x86_64.rpm
pykde4包名
4.10.5版本号
4.el7 发布版本号 7是代表centos7
.x86_64 平台为 centos7默认64位
rpm后缀名
64位的平台也可一装32位的包
三 . rpm工具的用法
安装rpm包
rpn –ivh rpm包文件
[root@qklinux-01 Packages]# rpm -ivh zsh-5.0.2-31.el7.x86_64.rpm
升级rpm包
rpm –Uvh rpm包文件
#rpm -Uvh zsh-5.0.2-31.el7.x86_64.rpm
卸载rpm包 如果什么都不显示 说明正常卸载
rpm –e 包名
#rpm -e zsh
查询安装的包 # rpm –qa
查询一个包是否被安装
[root@qklinux-01 Packages]# rpm -q file
file-5.11-35.el7.x86_64
查询指定包信息 rpm -qi
[root@qklinux-01 Packages]# rpm -qi file
Name : file
Version : 5.11
Release : 35.el7
Architecture: x86_64
Install Date: 2019年03月11日 星期一 00时52分27秒
Group : Applications/File
Size : 67448
列出安装包的文件rpm -ql
[root@qklinux-01 Packages]# rpm -ql file
/etc/magic
/usr/bin/file
/usr/share/doc/file-5.11
/usr/share/doc/file-5.11/COPYING
/usr/share/doc/file-5.11/ChangeLog
/usr/share/doc/file-5.11/README
/usr/share/man/man1/file.1.gz
查看一个文件是由那个包安装的 rpm –qf 文件绝对路径
[root@qklinux-01 Packages]# rpm -qf /usr/bin/file
file-5.11-35.el7.x86_64
扩展知识
使用反引号which命令查看
[root@qklinux-01 Packages]# rpm -qf /usr/bin/file
file-5.11-35.el7.x86_64
四. yum工具用法
yum工具可以自动解决依赖关系 自动安装依赖包
yum list 可以列出可用的rpm包
[root@qklinux-01 Packages]# yum list
yum-plugin-versionlock.noarch 1.1.31-50.el7 base
yum-rhn-plugin.noarch 2.0.1-10.el7 base
yum-updateonboot.noarch 1.1.31-50.el7 base
zenity.x86_64 3.28.1-1.el7 base
zlib.i686 1.2.7-18.el7 base
zlib-devel.i686 1.2.7-18.el7 base
zlib-devel.x86_64 1.2.7-18.el7 base
左侧是包的名字 中间一列是版本号及平台版本号 base是仓库名字
可以查看yum配置文件
[root@qklinux-01 Packages]# ls /etc/yum.repos.d/
CentOS-Base.repo CentOS-Media.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo
[root@qklinux-01 Packages]# cat /etc/yum.repos.d/CentOS-Base.repo
CentOS-Base.repo
#
The mirror system uses the connecting IP address of the client and the
#update status of each mirror to pick mirrors that are updated to and
geographically close to the client. You should use this for CentOS updates
unless you are manually picking other mirrors.
If the mirrorlist= does not work for you, as a fall back you can try the
remarked out baseurl= line instead.
#
#
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
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
【】中的字符创就是仓库名字 把包放到一个容器里 容器就是仓库 仓库下面的网络地址可以找到 每个仓库下面有很多包
搜索一个包yum search 包名
[root@qklinux-01 Packages]# yum search vim
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.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”试试。
精准搜索yum list |grep ‘包名’
[root@qklinux-01 Packages]# yum list |grep 'vim'
vim-common.x86_64 2:7.4.160-5.el7 @base
vim-enhanced.x86_64 2:7.4.160-5.el7 @base
vim-filesystem.x86_64 2:7.4.160-5.el7 @base
vim-minimal.x86_64 2:7.4.160-5.el7 @anaconda
protobuf-vim.x86_64 2.5.0-8.el7 base
vim-X11.x86_64 2:7.4.160-5.el7 base
grep 过滤指定字符串 |管道符 是把前面输出结果丢给后面 作为grep的输入
安装包 yum install 加上-y不再询问是否安装
列出可用的组 yum grouplist
[root@qklinux-01 Packages]# yum grouplist
已加载插件:fastestmirror
没有安装组信息文件
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.com
可用的环境分组:
最小安装
基础设施服务器
计算节点
文件及打印服务器
基本网页服务器
虚拟化主机
带 GUI 的服务器
GNOME 桌面
KDE Plasma Workspaces
开发及生成工作站
可用组:
传统 UNIX 兼容性
兼容性程序库
图形管理工具
安全性工具
开发工具
控制台互联网工具
智能卡支持
科学记数法支持
系统管理
系统管理工具
完成
LANG=en 切换语言为中文 LANG=zh_CN.UTF-8 切换语言为英文
安装组 yum groupinstall -y 组名
[root@qklinux-01 Packages]# yum groupinstall 'Virtualization Host’
卸载包 yum remove (-y)
yum remove ppp
升级包 yum update(-y) 如果后面不加包名 会把系统所有包进行升级 甚至包括系统 内核 只有在刚安装完系统后才会使用 如果系统有环境 不能随意升级
yum provide “/*/命令” 用命令来搜索包 只是针对没有安装的命令
[root@qklinux-01 Packages]# yum provides "/*/vim"
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.163.com
* extras: mirrors.shu.edu.cn
* updates: mirrors.163.com
updates/7/x86_64/filelists_db | 2.6 MB 00:05
cmake-2.8.12.2-2.el7.x86_64 : Cross-platform make system
源 :base
匹配来源:
文件名 :/usr/share/cmake/editors/vim
git-1.8.3.1-19.el7.x86_64 : Fast Version Control System
源 :base
匹配来源:
文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim
git-1.8.3.1-20.el7.x86_64 : Fast Version Control System
源 :updates
匹配来源:
文件名 :/usr/share/doc/git-1.8.3.1/contrib/vim
2:vim-common-7.4.160-5.el7.x86_64 : The common files
...: needed by any version of the VIM editor
源 :base
匹配来源:
文件名 :/usr/share/vim
2:vim-enhanced-7.4.160-5.el7.x86_64 : A version of the VIM
...: editor which includes recent enhancements
源 :base
匹配来源:
文件名 :/usr/bin/vim
2:vim-enhanced-7.4.160-5.el7.x86_64 : A version of the VIM
...: editor which includes recent enhancements
源 :@base
匹配来源:
文件名 :/usr/bin/vim
五. yum搭建本地仓库
如果不能联网可以搭建本地仓库 在本地路径找rpm包
步骤:
1)挂载镜像到/mnt目录下 可以访问到rpm包
2) 提前备份文件
[root@qklinux-01 ~]# cp -r /etc/yum.repos.d /etc/yum.repos.d.bak
3)删除/etc/yum.repos.d下所有的文件
[root@qklinux-01 ~]# cd /etc/yum.repos.d
[root@qklinux-01 yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo
[root@qklinux-01 yum.repos.d]# rm -rf ./*
4)创建dvd.repo 写入配置
[root@qklinux-01 yum.repos.d]# vi dvd.repo
[dvd] //仓库名
name=install dvd //自定义字符串
baseurl=file:///mnt //路径
enable=1 //是否可用 0不可用 1可用
gpgchcek=0 //是否检测 0不检测 1检测
5) 清楚缓存yum clean all
[root@qklinux-01 yum.repos.d]# yum clean all
已加载插件:fastestmirror
正在清理软件源: dvd
Cleaning up list of fastest mirrors
Other repos take up 141 M of disk space (use --verbose for details)
6)查看 yum list
[root@qklinux-01 yum.repos.d]# yum list |less
GeoIP.x86_64 1.5.0-13.el7 @anaconda
NetworkManager.x86_64 1:1.12.0-6.el7 @anaconda
NetworkManager-libnm.x86_64 1:1.12.0-6.el7 @anaconda
NetworkManager-team.x86_64 1:1.12.0-6.el7 @anaconda
NetworkManager-tui.x86_64 1:1.12.0-6.el7 @anaconda
acl.x86_64 2.2.51-14.el7 @anaconda
aic94xx-firmware.noarch 30-6.el7 @anaconda
alsa-firmware.noarch 1.0.28-2.el7 @anaconda
alsa-lib.x86_64 1.1.6-2.el7 @anaconda
alsa-tools-firmware.x86_64 1.1.0-1.el7 @anaconda
audit.x86_64 2.8.4-4.el7 @anaconda
audit-libs.x86_64 2.8.4-4.el7 @anaconda
authconfig.x86_64 6.2.8-30.el7 @anaconda
basesystem.noarch 10.0-7.el7.centos @anaconda
bash.x86_64 4.2.46-31.el7 @anaconda
bind-libs-lite.x86_64 32:9.9.4-72.el7 @anaconda
bind-license.noarch 32:9.9.4-72.el7 @anaconda
binutils.x86_64 2.27-34.base.el7 @anaconda
biosdevname.x86_64 0.7.3-1.el7 @anaconda
后边带@符号的是已经安装的包 下边仓库名是dvd的表示可安装的包
六. yum更换国内源
有时自带的yum源是国外的比较慢 可以更改国内源
更换yum仓库源
1) cd /etc/yum.repos.d/
2)删掉dve.pro 恢复之前备份的文件
[root@qklinux-01 yum.repos.d]# ls
dvd.repo
[root@qklinux-01 yum.repos.d]# rm -f dvd.repo
[root@qklinux-01 yum.repos.d]# cp ../yum.repos.d.bak/* .
[root@qklinux-01 yum.repos.d]# ls
CentOS-Base.repo CentOS-Media.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo
删除rm -f CentOS-Base.repo
下在国内163源 curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
或者使用wget安装
[root@qklinux-01 yum.repos.d]# curl -O http://mirrors.163.com/.help/CentOS7-Base-163.repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --: 0 0 0 0 0 0 0 0 --:--:-- --:100 1572 100 1572 0 0 5482 0 --:--:-- --:--:-- --:--:-- 5496
[root@qklinux-01 yum.repos.d]# ls
CentOS7-Base-163.repo CentOS-Media.repo
CentOS-CR.repo CentOS-Sources.repo
CentOS-Debuginfo.repo CentOS-Vault.repo
CentOS-fasttrack.repo
wget安装# yum install -y wget
七. yum下载rpm包
1.安装扩展源epel
yum install -y epel-release
查看增加的包
yum list |grep epel
2. yum下载rpm包 下载不安装、确认下载的rpm包是不是已经被安装过
yum install –y 包名 –downloadonly
[root@qklinux-01 yum.repos.d]# yum install zsh --downloadonly
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* epel: mirror01.idc.hinet.net
软件包 zsh-5.0.2-31.el7.x86_64 已安装并且是最新版本
无须任何处理
下载的包存放的位置
ls /var/cache/yum/x86_64/7/base/packages/
下载包到指定路径下
yum install zsh --downloadonly --downloaddir=/tmp/
重新安装一个装过的包
yum reinstall -y 包名 --downloadonly --downloaddir=路径
安装vim包
#yum reinstall -y vim-enhanced --downloadonly --downloaddir=/tmp/
八 源码包安装
1. 源码包的存放路径/usr/local/src/
cd /usr/local/src/
2. 下载源码包
#wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.35.tar.gz
3. 解压httpd-2.2.29.tar.gz
tar -zxvf httpd-2.2.29.tar.gz
ls
httpd-2.2.29 httpd-2.2.29.tar.gz
[root@qklinux-01 src]# cd httpd-2.2.29
[root@qklinux-01 httpd-2.2.29]# ls
ABOUT_APACHE httpd.dsp NOTICE
acinclude.m4 httpd.mak NWGNUmakefile
Apache.dsw httpd.spec os
build include README
BuildAll.dsp INSTALL README.platforms
BuildBin.dsp InstallBin.dsp README-win32.txt
buildconf LAYOUT ROADMAP
CHANGES libhttpd.dep server
config.layout libhttpd.dsp srclib
configure libhttpd.mak support
configure.in LICENSE test
docs Makefile.in VERSIONING
emacs-style Makefile.win
httpd.dep modules
查看说明文档
#more README
查看安装文档
#more INSTALL
安装指定安装路径
[root@qklinux-01 httpd-2.2.29]# ./configure --prefix=/usr/local/apache2
checking for chosen layout... Apache
checking for working mkdir -p... yes
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
Configuring APR library
Platform: x86_64-unknown-linux-gnu
checking for working mkdir -p... yes
APR Version: 1.5.1
checking for chosen layout... apr
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/usr/local/src/httpd-2.2.29/srclib/ap
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details
configure failed for srclib/apr
看到有报错使用echo $?查看是不是0如果是不是0说明命令错误
[root@qklinux-01 httpd-2.2.29]# echo $?
1
错误解决checking for gcc… no checking for cc… no checking for cl.exe… no
#yum install gcc
错误解决后编译安装安装完echo检查
#make
#make install
查看安装完的文件
[root@qklinux-01 httpd-2.2.29]# ls /usr/local/apache2/
bin cgi-bin error icons lib man modules
build conf htdocs include logs manual
直播课 包管理
1. yum保留已经安装过的包
http://www.360doc.com/content/11/0218/15/4171006_94080041.shtml
yum安装可以源码安装共存
安装yum-utils
[root@qklinux-01 httpd-2.2.29]# yum install -y yum-tils
使用yumdownloder 包名 //可以 下载rpm包到本地
yum localinstall xxx rpm //自动下载有依赖的rpm包
2. 搭建局域网yum源
http://blog.lishiming.net/?p=500
如果不能用外网 可以使用局域网搭建yum源 局域网搭建比本地搭建rpm宝更全 局域网内其他及可以使用