# 八.软件包管理
前言
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
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
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
2
启动服务
/bin/systemctl start nginx.service
/bin/systemctl stop nginx.service
curl http://115.29.148.6/
1
2
3
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
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
2
# /etc/mongod.conf
net:
port: 27017
bindIp: 127.0.0.1
1
2
3
4
2
3
4
systemctl start mongod.service # 启动服务
systemctl stop mongod.service
systemctl status mongod.service
systemctl restart mongod.service
1
2
3
4
2
3
4
systemctl stop firewalld.service # 停止 firewall,远程连接
systemctl disable firewalld.service # 禁止 firewall 开机启动
1
2
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
2
3
4
# 4.4 mysql
rpm -qa | grep mysql # 检测mysql
rpm -e mysql # 普通删除模式
rpm -e --nodeps mysql # 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
1
2
3
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
2
3
chown -R mysql:mysql /var/lib/mysql/ # 权限设置
mysqld --initialize # 初始化 MySQL
1
2
2
systemctl start mysqld.service
systemctl stop mysqld.service
systemctl status mysqld.service # 查看 MySQL 运行状态
systemctl restart mysqld.service
1
2
3
4
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
2
3
4
- 支持远程访问
GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY 'abcd1#EFG' WITH GRANT OPTION
FLUSH PRIVILEGES
1
2
2
systemctl enable mysqld # 开机自动访问
systemctl daemon-reload
1
2
2
- C:\program1\mysql-5.7.31-winx64\bin\mysqld MySQL
mysql -h115.29.148.6 -uroot -p # 远程访问
1