Linux软件管理


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

管理操作:

  1. 安装软件

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%]
  1. 卸载软件

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

  1. 升级软件

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源

  1. 挂载光盘

[root@test01 ~]# mount /dev/sr0 /mnt/

  1. 备份系统自带的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

  1. 编辑本地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操作:

  1. 安装软件

yum install -y 软件名称

  1. 显示yum中所有软件

[root@test01 ~]# yum list all

  1. 显示所有软件组

[root@test01 ~]# yum grouplist

  1. 安装软件组

yum groupinstall -y 软件组名称

[root@test01 ~]# yum groupinstall -y "Security Tools"

  1. 查询文件所属的软件名称

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仓库

  1. 准备rpm软件
  2. 创建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 
有志者,事竟成,破釜沉舟,百二秦关终属楚; 苦心人,天不负,卧薪尝胆,三千越甲可吞吴。 想到与得到中间还有两个字——做到。
原文地址:https://www.cnblogs.com/huoxc/p/12850949.html