一、软件管理
导语:
安装软件
rpm
yum
源码安装
卸载软件
rpm介绍
rpm软件包名称:
软件名称 版本号(主版本、次版本、修订号) 操作系统 -----90%的规律
#有依赖关系,不能自动解决依赖关系。
举例:openssh-6.6.1p1-31.el7.x86_64.rpm
数字前面的是名称
数字是版本号:第一位主版本号,第二位次版本号,带横杠的是修订号, el几---操作系统的版本。
noarch : 32位64位都支持
x86_64 : 64位
i4-686的包 :32位
devel:表示这个RPM包是软件的开发包;
======
#用rpm安装需要考虑如下信息:
1.需要考虑系统的版本需要与rpm对应
2.系统的架构:如32位还是64位
3.需要考虑依赖关系
rpm安装
语法 # rpm -ivh 软件包名称
-i install
-vh verbose human
-U upgrade 升级
查找rpm包的网站:http://rpmfind.net/ http://pkgs.org
1.通过rpm安装
可以先下载下来
[root@linux-server ~]# wget http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
#wget下载命令
#wget -O 指定存放路径
[root@linux-server ~]# rpm -ivh ntfs-3g-2017.3.23-11.el7.x86_64.rpm #本地安装rpm包
2.直接通过连接安装rpm包
[root@linux-server ~]# rpm -ivh http://download-ib01.fedoraproject.org/pub/epel/7/x86_64/Packages/n/ntfs-3g-2017.3.23-11.el7.x86_64.rpm
各种查询
==查询
(从本地的rpm数据库)
-q query
-l list
-f file
-a all
[root@linux-server ~]# rpm -qa | grep 软件名 # 查找软件是否安装
[root@linux-server ~]# rpm -ql httpd #查询http安装的文件
[root@linux-server ~]# rpm -qf /usr/share/httpd/noindex #查询该文件属于哪个包
[root@linux-server ~]# rpm -qf /etc/passwd #查询某一个文件是哪个软件产生的:只能查询已经安装好的软件
卸载
语法:# rpm -e 软件名称
-e erase
[root@linux-server ~]# rpm -e httpd
rpm工具管理软件包总结:
1. 很难解决包依赖关系
2. 如果某个文件没有,很难知道它由哪个rpm包提供
yum方式管理
#可以自动解决rpm软件依赖关系,虽然是通过yum安装的但是最后执行的还是rpm,也就是说没有rpm命令yum也就不能用了。
分类:本地yum和远程yum
本地yum:
file://
远程yum:
http://
ftp://
yum操作
安装好环境之后我们有centos自带的官方yum源,我们也可以自行更换或者制作自己的yum源
清理yum缓存:
# yum clean all
缓存软件包信息:
提高搜索/安装软件的速度
# yum makecache
查询yum源信息:
# yum repolist
查看命令属于哪个软件
# yum provides rz
查看系统已经安装好的软件和没有安装的软件(源里存在即可查到):
# yum list
安装软件:
# yum install 软件名称
# yum install mysql mysql-server -y #-y跳过确认提示直接安装
重装:
# yum -y reinstall 软件名
卸载软件:
# yum erase mysql-server
# yum remove mysql-server
# yum -y remove mysql-server
[root@linux-server ~]# yum -y remove `rpm -qa | grep httpd` #yum卸载rpm查找出来所有与httpd相关的软件包全部卸载掉
更换网络yum源–aliyun
https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.3e221b11WaK1yM --阿里yum源地址
[root@linux-server ~]# cd /etc/yum.repos.d
[root@linux-server yum.repos.d]# mkdir back
[root@linux-server yum.repos.d]# mv *.repo back
[root@linux-server yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo #下载aliyun的yum源
参数解释
curl -o 指定存放路径
或者
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装扩展源--epel.repo
[root@linux-server ~]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
[root@linux-server ~]# cd /etc/yum.repos.d/
[root@linux-server yum.repos.d]# ls
CentOS-Base.repo epel.repo
源码包管理
一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上运行。
源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。
源码安装的优点,编译安装过程,可以设定参数按照需求增加功能,进行安装,并且可以指定安装的版本,可以指定安装路径,灵活性比较大。
获得源码包途径 官方网站,可以获得最新的软件包
mysql: http://www.mysql.com/
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
二、局域网远程yum源制作(企业案例)扩展作业
操作系统:centos7.4
资源: CentOS-7-x86_64-DVD-1708.iso镜像
实验服务器两台:
192.168.246.170 (作为vsftpd服务端)
192.168.246.169 (客户端)
首先测试两台主机可否ping通
在192.168.246.170上操作
[root@192 ~]# ping 192.168.246.169
PING 192.168.246.169 (192.168.246.169) 56(84) bytes of data.
64 bytes from 192.168.246.169: icmp_seq=1 ttl=64 time=0.644 ms
[root@192 ~]# systemctl stop firewalld
[root@192 ~]# setenforce 0 #关闭selinux
在192.168.246.169上操作:
[root@linux-server ~]# ping 192.168.246.170
PING 192.168.246.170 (192.168.246.170) 56(84) bytes of data.
64 bytes from 192.168.246.170: icmp_seq=1 ttl=64 time=0.374 ms
[root@linux-server ~]# systemctl stop firewalld
[root@linux-server ~]# setenforce 0
==========================================================
在192.168.246.170上操作---制作本地yum源,作为yum服务端
将CentOS-7-x86_64-DVD-1708.iso 上传到/opt目录下
[root@192 ~]# mkdir /opt/yum-iso #创建挂载点
[root@192 ~]# mount /opt/CentOS-7-x86_64-DVD-1708.iso /opt/yum-iso/
[root@192 ~]# yum install -y vsftpd
[root@192 ~]# systemctl start vsftpd
[root@192 ~]# cp -r /opt/yum-iso/* /var/ftp/pub/
[root@192 ~]# cd /var/ftp/
[root@192 ftp]# yum install -y createrepo
[root@192 ftp]# createrepo pub/
[root@192 ftp]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# vim myyum.repo
[ftpYum]
name=ftpYum
baseurl=file:///opt/yum-iso
enabled=1
gpgcheck=0
[root@192 yum.repos.d]# yum clean all
[root@192 yum.repos.d]# yum makecache
[root@192 yum.repos.d]# yum repolist
===================================================================
yum客户端
在192.168.246.169上操作:
[root@linux-server ~]# cd /etc/yum.repos.d/
[root@linux-serv
er yum.repos.d]# vim my.repo
[ftpYum]
name=centos
baseurl=ftp://192.168.246.170/pub
enabled=1
gpgcheck=0
[root@linux-server yum.repos.d]# yum clean all
[root@linux-server yum.repos.d]# yum makecache
[root@linux-server yum.repos.d]# yum repolist
制作本地yum源方式
通过镜像制作本地yum源
首先需要挂载镜像
[root@linux-server ~]# mkdir /mnt/centos7u4
将本地镜像上传到虚拟机中
[root@linux-server ~]# mv /usr/local/home/dir10/CentOS-7-x86_64-DVD-1708.iso /root/
[root@linux-server ~]# mount CentOS-7-x86_64-DVD-1708.iso /mnt/centos7u4/
[root@linux-server ~]# rm -rf /etc/yum.repos.d/*
[root@linux-server ~]# cd /etc/yum.repos.d/ #yum源配置文件存放目录
[root@linux-server yum.repos.d]# vim CentOS.Base.repo #在编写yum配置文件是必须是.repo
[centos7u4] #yum源区别名称,用来区分其他的yum源
name=centos7u4 #yum源描述 yum源名字
baseurl=file:///mnt/centos7u4 #指定本地yum源的路径
enabled=1 #是否使用此yum源(1为打开,0为关闭)
gpgcheck=0 #检查软件
通过开启yum下载缓存功能制作本地yum源
制作自己的yum源:
打开Yum缓存功能:安装完软件之后,软件不会被删除(默认安装完之后,不会保留安装包)
# vim /etc/yum.conf 修改下面参数的值为1,软件会被保存到cachedir指定的目录下
keepcache=1
[root@linux-server ~]# yum install -y httpd wget
[root@linux-server ~]# cd /var/cache/yum/x86_64/7/base/packages/ #yum缓存仓库
[root@linux-server packages]# ls
httpd-2.4.6-90.el7.centos.x86_64.rpm wget-1.14-18.el7_6.1.x86_64.rpm
httpd-tools-2.4.6-90.el7.centos.x86_64.rpm
自己制作yum源
[root@linux-server ~]# mkdir /myyum (把rpm安装包放到此目录里面)
把想用yum安装的软件包拷贝到目录下
[root@linux-server ~]# cp /var/cache/yum/x86_64/7/base/packages/* /myyum/
[root@linux-server ~]# yum install -y createrepo #创建repo文件工具
[root@linux-server ~]# createrepo /myyum //此目录就可以作为yum源了。
[root@linux-server ~]# vim /etc/yum.repos.d/myyum.repo
[myyum]
name=myyum
baseurl=file:///myyum
enabled=1
gpgcheck=0
[root@linux-server ~]# yum repolist
yum排错:
1.yum配置文件必须以.repo结尾
2.配置文件关键字错误
3.检查yum源是否存在
4.baseurl路径是否正确
5.镜像大小是否正确
6.当有Yum进程存在的时,无法同时再打开一个Yum进程
克隆yum源
在公司内网中,可能无法连接外部网络,这时需要我们将外部yum源中的包克隆到本地
# 在yum源服务器上
[root@linux-server ~]# yum install -y yum-utils epel-release
[root@linux-server ~]# yum install -y nginx
[root@linux-server ~]# vim /etc/nginx/nginx.conf
location / {
root /usr/share/nginx/html;
autoindex on;
}
[root@linux-server ~]# reposync -r base
# 在使用端
[root@linux-client ~]# vim /etc/yum.repos.d/myrepo.repo
[myrepo]
name=myrepo
baseurl=http://nginx-server
http://bachup-nginx-server
enabled=1
gpgcheck=0