Linux软件管理
Windows:
.exe
.msi
Centos/RHEL/Fedora:
二进制格式的软件(*.rpm) redhat package management
源码软件(*.tar.gz, *.tar.bz2)
rpm软件管理
光盘iso镜像文件
[root@node01 ~]# mount /dev/sr0 /mnt/
[root@node01 ~]# ls /mnt/Packages/
[root@node01 ~]# umount /dev/sr0 >>>>卸载光盘
rpm软件名称的组成
zlib-devel-1.2.7-15.el7.x86_64.rpm
zlib-devel 软件名称
1.2.7 版本
el7.x86_64 软件运行平台
互联网
https://pkgs.org/
http://rpmfind.net/
查看系统平台信息
[root@node01 ~]# uname -r
3.10.0-327.el7.x86_64
[root@node01 ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@node01 ~]#
管理rpm软件
查询操作:
1、查询软件是否安装
rpm -q 软件名称
[root@node01 ~]# rpm -q bash
bash-4.2.46-19.el7.x86_64
[root@node01 ~]# rpm -qa | grep vim
vim-enhanced-7.4.160-1.el7.x86_64
vim-minimal-7.4.160-1.el7.x86_64
vim-filesystem-7.4.160-1.el7.x86_64
vim-common-7.4.160-1.el7.x86_64
[root@node01 ~]#
2、查询软件的说明信息
rpm -qi 软件名称
[root@node01 ~]# rpm -qi bash
[root@node01 ~]# rpm -qi vim-enhanced
3、查看软件生成的文件
rpm -ql 软件名称
[root@node01 ~]# rpm -ql vim-enhanced
[root@node01 ~]# rpm -ql bash | less
4、查看文件由哪个软件生成
rpm -qf 文件名称
[root@node01 ~]# which chmod
/usr/bin/chmod
[root@node01 ~]# rpm -qf /usr/bin/chmod
coreutils-8.22-15.el7.x86_64
5、查看软件的配置文件
rpm -qc 软件名称
[root@node01 ~]# rpm -qc vim-enhanced
管理操作:
- 安装软件
rpm -ivh 软件安装包名称
i:安装install
v:显示详细信息verbose
h:显示软件的安装进度
安装vsftpd软件
[root@node01 ~]# mount /dev/sr0 /mnt/
[root@node01 ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm
警告:/mnt/Packages/vsftpd-3.0.2-10.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:vsftpd-3.0.2-10.el7 ################################# [100%]
安装dhcp软件
[root@node01 ~]# rpm -ivh /mnt/Packages/dhcp-4.2.5-42.el7.centos.x86_64.rpm
警告:/mnt/Packages/dhcp-4.2.5-42.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:dhcp-12:4.2.5-42.el7.centos ################################# [100%]
安装ntfs-3g软件
[root@node01 ~]# rpm -ivh ntfs-3g-2013.1.13-5.el7.x86_64.rpm
警告:ntfs-3g-2013.1.13-5.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 352c64e5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:ntfs-3g-2:2013.1.13-5.el7 ################################# [100%]
安装httpd软件
[root@node01 ~]# rpm -ivh /mnt/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm
警告:/mnt/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
错误:依赖检测失败:
/etc/mime.types 被 httpd-2.4.6-40.el7.centos.x86_64 需要
httpd-tools = 2.4.6-40.el7.centos 被 httpd-2.4.6-40.el7.centos.x86_64 需要
libapr-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.centos.x86_64 需要
libaprutil-1.so.0()(64bit) 被 httpd-2.4.6-40.el7.centos.x86_64 需要
解决办法:
选项--nodeps 忽略依赖关系
[root@node01 ~]# rpm -ivh --nodeps /mnt/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm
警告:/mnt/Packages/httpd-2.4.6-40.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-2.4.6-40.el7.centos ################################# [100%]
- 卸载软件
rpm -e 软件名称
[root@node01 ~]# rpm -q dhcp
dhcp-4.2.5-42.el7.centos.x86_64
[root@node01 ~]# rpm -e dhcp
[root@node01 ~]# rpm -qa | grep jdk
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
[root@node01 ~]# rpm -e java-1.7.0-openjdk-headless
error: Failed dependencies:
java-1.7.0-openjdk-headless = 1:1.7.0.91-2.6.2.3.el7 is needed by (installed) java-1.7.0-openjdk-1:1.7.0.91-2.6.2.3.el7.x86_64
[root@node01 ~]# rpm -e --nodeps java-1.7.0-openjdk-headless
[root@node01 ~]# rpm -qa | grep jdk
java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
- 升级软件
rpm -Uvh 软件安装包名称
注意:自动卸载旧版本软件
[root@node01 ~]# rpm -Uvh --nodeps php-5.4.16-42.el7.x86_64.rpm
warning: php-5.4.16-42.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:php-5.4.16-42.el7 ################################# [ 50%]
Cleaning up / removing...
2:php-5.4.16-36.el7_1 ################################# [100%]
[root@node01 ~]#
===========================
使用yum的方式管理rpm软件
优势:自动解决软件的依赖关系
前提条件:配置yum仓库/yum源
yum源类型:
1、本地yum源
2、ftp源
3、http源
https://mirrors.aliyun.com 阿里云镜像
http://mirrors.163.com 网易镜像
http://mirror.centos.org/ Centos官网
# yum install -y epel-release 安装epel源
baseurl=https://mirrors.aliyun.com/centos/7.3.1611/storage/x86_64/ceph-hammer/
baseurl=https://mirrors.aliyun.com/centos/7.3.1611/cloud/x86_64/openstack-ocata/
yum源/仓库的配置文件
/etc/yum.repos.d/*.repo
示例:配置本地yum源
- 挂载光盘
[root@test01 ~]# mount /dev/sr0 /mnt/
- 备份系统自带的yum源配置文件
[root@test01 ~]# mkdir /etc/yum.repos.d/default
[root@test01 ~]# mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/default/
[root@test01 ~]#
[root@test01 ~]# ls /etc/yum.repos.d/
default
- 编辑本地yum源文件
[root@test01 ~]# cat /etc/yum.repos.d/centos.repo
[centos7.2]
name=centos7.2
baseurl=file:///mnt
enabled=1
gpgcheck=0
[root@test01 ~]# yum clean all >>>>清除yum缓存
[root@test01 ~]# yum repolist >>>>显示可用的yum源
[root@test01 ~]# yum makecache >>>>生成yum缓存,可tab补全软件名称(CentOS 7+)
[root@test01 ~]# yum install -y httpd vsftpd >>>>安装httpd, vsftpd软件
常用yum操作:
- 安装软件
yum install -y 软件名称
- 显示yum中所有软件
[root@test01 ~]# yum list all
- 显示所有软件组
[root@test01 ~]# yum grouplist
- 安装软件组
yum groupinstall -y 软件组名称
[root@test01 ~]# yum groupinstall -y "Security Tools"
- 查询文件所属的软件名称
yum provides 文件名称
[root@test01 ~]# yum provides "*bin/passwd"
示例:配置172.16.8.100的ftp源
[root@test01 ~]# cat /etc/yum.repos.d/ftp.repo
[ftpcentos]
name=ftpcentos
baseurl=ftp://172.16.8.100/centos7u2
enabled=1
gpgcheck=0
制作yum repo仓库
- 准备rpm软件
- 创建yum元数据文件
[root@test01 ~]# createrepo /mysql/
源码软件管理安装
1、配置安装参数
2、编译
3、安装
前提:gcc编译环境
示例:编译安装htop软件
[root@test01 ~]# tar zxf htop-1.0.3.tar.gz
[root@test01 ~]# cd htop-1.0.3/
[root@test01 htop-1.0.3]# ./configure --prefix=/usr/local/htop
[root@test01 htop-1.0.3]# make
[root@test01 htop-1.0.3]# make install
错误1:
configure: error: You may want to use --disable-unicode or install libncursesw.
解决办法:
yum install -y ncurses-devel
运行htop软件
[root@test01 man1]# /usr/local/htop/bin/htop