一、软件管理
导语:
安装软件 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 httpdrpm工具管理软件包总结: 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 查看历史操作并恢复 #yum history # 查看历史操作记录 #yum history undo id # 恢复 [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
总结:
教室里面的yum源
curl -o get-repo.sh https://gitea.beyourself.org.cn/newrain001/shell-project/raw/branch/master/os/get-repo.sh &>/dev/null && sh get-repo.sh阿里云源
cd /etc/yum.repos.d && rm -rf * && curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo && curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
作业:更换163的yum源
源码包管理
一个软件要在Linux上执行,必须是二进制文件,因此当我们拿到软件源码后,需要将它编译成二进制文件才能在Linux上运行。 源码包的编译用到了linux系统里的编译器,通常源码包都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件。 源码安装的优点,编译安装过程,可以设定参数按照需求增加功能,进行安装,并且可以指定安装的版本,可以指定安装路径,灵活性比较大。
获得源码包途径 官方网站,可以获得最新的软件包 mysql: MySQL
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
二、自建yum源
本地源
一、使用本地的镜像文件来制作yum源(做完记得删除)
1、挂载dvd镜像或将镜像拷贝到机器中 mkdir /yum-repo mount /dev/cdrom /yum-repo # 如果我们在设置中挂载了镜像使用这个方法 mount 镜像的路径 /yum-repo # 如果我们拷贝镜像到了系统中,可以用这种方法 2、准备本地yum源文件 vim /etc/yum.repos.d/xa2401.repo # 源文件必须以.repo结尾 # 源标识 [xa2401] # 源名字 name=xa2401-base # 源地址,本地用file:// baseurl=file:///yum-repo # 是否检查 gpgcheck=0 # 是否开启 enabled=1
二、自己准备的包做成yum源
1、你可以在网上下载包,或在其他机器上缓存包并拷贝到一个目录中。可以看到我的这个目录下全都是rpm包
这个package文件夹是自己创建的,包也是自己导进去的
[root@localhost ~]# ls /package/ | head -2
adcli-0.8.1-16.el7_9.1.x86_64.rpm
at-3.1.13-25.el7_9.x86_64.rpm
2、安装制作yum源的工具
yum install -y createrepo #这个用来制作源
3、制作源
createrepo /package
4、创建源文件
# 源标识
[xa2401]
# 源名字
name=xa2401-base
# 源地址,本地用file://
baseurl=file:///package
# 是否检查
gpgcheck=0
# 是否开启
enabled=1
远程源
一、使用ftp制作远程源
1、关闭防火墙和selinux systemctl stop firewalld setenforce 0 2、安装vsftpd yum install -y vsftpd 3、创建目录并拷贝包,然后授权 mkdir /var/ftp/xa2401-ftp ls /yum-repo/Packages/* | head -100 | xargs -i cp {} /var/ftp/xa2401-ftp/ # 拷贝一些包过来 createrepo /var/ftp/xa2401-ftp/ # 创建为yum源 chown ftp.ftp -R /var/ftp/xa2401-ftp 4、启动并访问测试 systemctl start vsftpd 打开此电脑,地址栏访问 ftp://ip地址,如果可以看到,表示配置正确 5、客户端配置源文件 vim /etc/yum.repos.d/xa2401-ftp.repo # 源文件必须以.repo结尾 # 源标识 [xa2401-ftp] # 源名字 name=xa2401-ftp # 源地址,远程用ftp:// baseurl=ftp://192.168.75.248 # 是否检查 gpgcheck=0 # 是否开启 enabled=1
总结:(本地源和远程源)
=================================================================
制作本地源
1、找到源内的包
1.1 可以网络上下载、从别的源克隆、配置缓存,然后通过缓存获取包
1.2 通过挂载镜像获取镜像中的包
2、如果包所在的目录不是一个yum源,需要做成yum源
yum install -y createrepo
createrepo 目录
3、写源文件
/etc/yum.repos.d/hello.repo
[源标识]
name=源名字
baseurl=file://包目录的绝对路径
enabled=1 # 开启
gpgcheck=0 # 关闭密钥检查远程源
1、关闭防火墙、selinux
2、安装ftp服务,提供21号端口供客户端访问
yum install -y vsftpd
3、在/var/ftp/创建源目录,准备包拷贝到目录中
4、制作源并授权
createrepo /var/ftp/源目录
chown ftp.ftp -R /var/ftp/源目录
5、启动ftp
systemctl start vsftpd
6、测试并编写源文件(客户端)
/etc/yum.repos.d/hello.repo
[源标识]
name=源名字
baseurl=ftp://IP地址/包目录的基于/var/ftp的相对路径
enabled=1 # 开启
gpgcheck=0 # 关闭密钥检查
================================================================
如何获取阿里云的源
[root@localhost ~]# yum install -y yum-utils [root@localhost ~]# yum repolist 已加载插件:fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 源标识 源名称 状态 base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072 epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13,785 extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 519 updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 5,766 xa2401-ftp xa2401-ftp 100 repolist: 30,242 [root@localhost ~]# reposync -r base -r epel -r extras -r updates
补充:
pidof httpd (可以杀死所有进程)
要批量改文件名字
rename 原 新 要操作的文件