# 八.软件包管理

前言

RPM 是 RedHat Package Manager(RedHat 软件包管理工具)类似 Windows 里面的"添加/删除程序"

# 1.软件包的分类

类型 说明 优点 缺点
源码包 需要编译,把人所编写的源代码编译成机器语言才能运行 开源免费,可以自由配置功能,编译安装更适合自己系统,更稳定,卸载方便 安装复杂,编译比较长,一旦报错,非常难以排查
二进制包 源代码经过编译生成 0/1 二进制 PRM 包、系统默认的安装包 只要通过简单的命令就可以实现包的安装、升级、查询和卸载;安装速度比源码包快很多 不能看到源代码;功能选择不灵活;依赖性比较麻烦
脚本安装包 安装过程写成了脚本,可以一键安装,本质上还是源代码包和二进制包 安装简单 失去了自定义性

# 2.YUM 在线管理

  • yum = Yellow dog Updater, Modified 主要功能是更方便的添加/删除/更新 RPM 包,它能自动解决包的倚赖性问题.
  • 这是 rpm 包的在线管理命令
  • 将所有的软件名放到官方服务器上,当进行 YUM 在线安装时,可以自动解决依赖性问题
  • /etc/yum.repos.d/
    • CentOS-Base.repo
    • epel.repo

# 2.1 CentOS-Base.repo

[base] # 容器名称,一定要放在[]中
name=CentOS-$releasever # 容器说明,可以自己随便写
# mirrorlist  镜像站点,可以注释掉
enabled=1 # 此容器是否生效 不写或者写成 enable=1 表示生效,写成 enable=0 表示不生效
failovermethod=priority
baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/ # YUM 源服务器的地址,默认是 CentOS 官方的 YUM 源
gpgcheck=1 # 如果是 1 就是指 RPM 的数字证书生效,如果是 0 则表示不生效
gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7 # 数字证书的公钥文件保存位置,不用改
1
2
3
4
5
6
7
8
  • 使用阿里云镜像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y update #升级所有包同时也升级软件和系统内核
1
2
3
4

# 3.YUM 命令

  • yum 安装只需要写包名即可

    命令 含义
    yum list 查询所有可用软件包列表
    yum search 关键字 搜索服务器上所有和关键字相关的包
    yum -y install 包名 -y 自动回答 yes install 安装
    yum -y update 包名 -y 自动回答 yes update 升级
    yum -y remove 包名 -y 自动回答 yes remove 卸载,卸载有依赖性,所以尽量不要卸载
    yum grouplist 列出所有可用的软件组列表
    yum groupinstall 软件组名 安装指定的组,组名可以用 grouplist 查询
    yum groupremove 软件组名 卸载指定软件组
    yum -y install gcc # 安装 C 语言安装包
    
    1

# 4.常用软件安装

# 4.1 nginx

yum install nginx -y
whereis nginx # 查看安装位置
1
2

启动服务

/bin/systemctl start nginx.service
/bin/systemctl stop nginx.service
curl http://115.29.148.6/
1
2
3

# 4.2 mongodb

创建 mongodb-org-4.0.repo 并添加安装源

cat << EOF | sudo tee -a /etc/yum.repos.d/mongodb-org-4.0.repo
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/7/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
1
2
3
4
5
6
7
8
  • 这里可以修改 gpgcheck=0, 省去 gpg 验证
yum makecache # 把服务器的包信息下载到本地电脑缓存起来
1
yum -y install mongodb-org  # 安装
1
whereis mongod
vi /etc/mongod.conf # 修改配置文件
1
2
# /etc/mongod.conf
net:
port: 27017
bindIp: 127.0.0.1
1
2
3
4
systemctl start mongod.service  # 启动服务
systemctl stop mongod.service
systemctl status mongod.service
systemctl restart mongod.service
1
2
3
4
systemctl stop firewalld.service # 停止 firewall,远程连接
systemctl disable firewalld.service # 禁止 firewall 开机启动
1
2

# 4.3 redis

yum install redis -y # 安装软件
1
systemctl start redis.service  # 启动服务
systemctl stop redis.service
systemctl status redis.service
systemctl restart redis.service
1
2
3
4

# 4.4 mysql

rpm -qa | grep mysql   # 检测mysql
rpm -e mysql  # 普通删除模式
rpm -e --nodeps mysql  # 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
1
2
3
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum install mysql-server  # 下载安装
1
2
3
chown -R mysql:mysql /var/lib/mysql/ # 权限设置
mysqld --initialize # 初始化 MySQL
1
2
systemctl start mysqld.service
systemctl stop mysqld.service
systemctl status mysqld.service # 查看 MySQL 运行状态
systemctl restart mysqld.service
1
2
3
4
  • 初始化数据库密码
grep "password" /var/log/mysqld.log
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'abcd1#EFG'
SHOW VARIABLES LIKE 'validate_password%'
1
2
3
4
  • 支持远程访问
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'abcd1#EFG' WITH GRANT OPTION
FLUSH PRIVILEGES
1
2
systemctl enable mysqld  # 开机自动访问
systemctl daemon-reload
1
2
  • C:\program1\mysql-5.7.31-winx64\bin\mysqld MySQL
mysql -h115.29.148.6 -uroot -p  # 远程访问
1