第18章 软件包管理
CentOS软件包管理
1.CentOS7软件包安装方式
分类 | 复杂程度 | 版本 |
---|---|---|
rpm包 | 预编译安装,安装简单 | 软件版本偏低 |
二进制包 | 解压即可用,安装简单 | 不能修改源码 |
源码包 | 手动编译安装,安装繁琐 | 软件版本随意 |
2.RPM命令使用
命令格式:
rpm [选项] [软件包名称]
安装软件时常用的选项:
-i #安装rpm软件包
-v #显示安装详细信息
-h #显示安装进度
--force #强制重新安装
--nodeps #忽略依赖关系
查询软件时常用选项:
-q #查看软件包是否安装
-qa #查看系统中已经安装过的rpm包列表
-qi #查看置顶软件的详细信息
-qc #查看指定软件包的配置文件
-ql #查看指定软件包的安装目录,文件列表等,比-qc详细
-qf #查看文件属于哪个rpm软件
-qip #查看为安装的rpm包详细信息
-qlp #查看未安装的软件包会产生哪些文件
升级软件时选项:
-U #如果老版本不存在则安装新版本,存在则升级新版本
卸载软件时选项:
-e #卸载软件
rpm -e $(rpm -qa|grep package)
RPM实验:
#1.下载rpm包
wget -O nginx-1.18.0-2.el7.ngx.x86_64.rpm http://nginx.org/packages/rhel/7/x86_64/RPMS/nginx-1.18.0-2.el7.ngx.x86_64.rpm
#2.安装rpm包
rpm -ivh nginx-1.18.0-2.el7.ngx.x86_64.rpm
#3.查询安装的软件的配置文件
rpm -qc nginx
#4.查询安装的软件的所有文件
rpm -ql nginx
#5.卸载软件
rpm -e nginx
3.YUM命令使用
作用:
通过互联网的指定仓库里自动下载并安装rpm包,并且可以自动解决依赖关系。
yum源概念:
yum源:很多软件集合的在线仓库,也称为base基础源
epel源:也称为拓展源,拥有很多base源没有的软件
第三方源:比如nginx,zabbix,Docker等第三方开源软件的官方仓库
默认yum源都放在/etc/yum.repos.d/目录下,以*.repo结尾
常用yum源地址:
http://mirrors.aliyun.com/repo/
https://mirrors.tuna.tsinghua.edu.cn/
https://mirrors.tuna.tsinghua.edu.cn/help/centos/
https://mirrors.tuna.tsinghua.edu.cn/help/epel/
https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
yum常用命令:
#查询相关命令
yum list #列出所有软件
yum provides command #列出包含这个命令的软件包名称
yum search package #搜索软件包
#安装相关命令
yum install #安装软件
yum install -y #安装软件并自动应答yes
yum install http://xxxx.rpm #从互联网在线安装rpm包
yum install --downloadonly #只下载不安装
yum localinstall *.rpm #本地安装rpm包
yum reinstall #重装软件
#更新命令
yum update #危险,更新系统所有软件
#卸载命令
yum remove #卸载软件包以及软件包的依赖,但保留配置文件
#清除缓存命令
yum clean all #清除yum缓存
yum命令练习:
#配置国内yum基础源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#配置国内yum拓展源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#删除阿里源里的内网链接
sed -i '/aliyuncs/d' /etc/yum.repos.d/*.repo
#配置第三方源
cat >/etc/yum.repos.d/nginx.repo<< 'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
#更新仓库缓存
yum makecache fast
#搜索软件包
yum search nginx
yum list|grep nginx
#仅下载不安装
yum install --downloadonly --downloaddir=/opt/ nginx
#安装软件包
yum install nginx -y
#卸载软件包
yum remove nginx -y
拓展:启动nginx
#如果安装完软件想测试下,可以使用以下命令启动nginx
iptables -F
systemctl start nginx
4.源码包编译安装
源码包编译介绍:
编码包指的是开发者写好的源代码,但是还不能直接使用,需要编译后才能变成可执行的命令。
源码编译安装相比rpm来说,具有几点优势:
1.可以看到源码,如果有能力可以二次开发
2.可以自己定制安装路径,运行用户等功能
缺点的话就是安装配置比较复杂,标准化难以实施。
编译安装比喻:
下载 买菜
./configure 切菜.洗菜,做什么菜
make 炒菜,抄完之后,菜还在锅里
make install 把菜端出来
/opt/nginx/sbin/nginx -t 尝一尝味道
/opt/nginx/sbin/nginx 吃菜
/opt/nginx/sbin/nginx -s reload 重新加载/加菜
/opt/nginx/sbin/nginx -s stop 收拾餐盘
编译安装步骤:
#创建www用户和www组
groupadd www -g 1000
useradd www -s /sbin/nologin -M -u 1000 -g 1000
#安装依赖包
yum install openssl-devel pcre-devel gcc -y
#下载解压源码包
mkdir /data/soft -p
cd /data/soft/
wget http://nginx.org/download/nginx-1.18.0.tar.gz
tar zxvf nginx-1.18.0.tar.gz
#配置编译参数
cd nginx-1.18.0
./configure --help
./configure --user=www --group=www --prefix=/opt/nginx-1.18.0/ --with-http_stub_status_module --with-http_ssl_module --with-pcre
#编译安装
make && make install
#创建软链接
ln -s /opt/nginx-1.18.0/ /opt/nginx
ls -l /opt/nginx
#检查语法
/opt/nginx/sbin/nginx -t
#启动服务
/opt/nginx/sbin/nginx
#检查服务
curl 127.0.0.1
5.二进制安装软件
二进制软件包介绍:
二进制软件包和rpm软件包的区别在于以下几点:
1.rpm包的安装路径是开发者固定好的,一般配置文件会放在/etc/下。而二进制软件包则所有文件都在一个压缩包里。
2.rpm包如果删除需要清理多个目录下的多个文件,而二进制安装包只需要删除整个目录就可以了,对系统侵占更小。
3.rpm包依赖多,升级麻烦。二进制包只需要替换安装目录即可完成升级,方便快捷。
二进制软件包使用:
#下载二进制软件包
rz jdk-8u221-linux-x64.tar.gz
#解压
cd /opt
tar zxf jdk-8u221-linux-x64.tar.gz
#创建软连接
ln -s jdk1.8.0_221 jdk
ll jdk
#写入环境变量
cp /etc/profile\{,.bak\}
cat > /etc/profile <<'EOF'
export JAVA_HOME=/opt/jdk/
export PATH=$PATH:$JAVA_HOME/bin
EOF
source /etc/profile
#检查
java -version
Ubuntu软件包管理
1.Ubuntu软件包安装方式
和CentOS软件包管理方式一样,只不过软件包格式不是rpm了,而是deb。源码编译和二进制包安装一样。
分类 | ||
---|---|---|
deb包 | 预编译安装,安装简单 | 软件版本偏低 |
源码包 | 手动编译安装,安装繁琐 | 软件版本随意 |
二进制包 | 解压即可用,安装简单 | 不能修改源码 |
2.dpkg命令使用
dpkg说明:
dpkg相当于CentOS的rpm命令,主要用来安装已经下载下来存在本地的软件包,应用对象是*.deb后缀的软件包。
常用命令参数:
dpkg -S keyword #查看包含关键词的软件包
dpkg -s package #查看软件包详细信息
dpkg -L package #查看软件包含的所有文件
dpkg -l package #查看软件包版本信息
dpkg -i *.deb #安装软件
dpkg -c *.deb #列出deb包里的内容
dpkg -r package #卸载软件,但保留配置文件
dpkg -P package #卸载软件,包含配置文件
应用案例:
#上传软件
rz nginx_1.18.0-2~focal_amd64.deb
#查看软件包内容
dpkg -c nginx_1.18.0-2~focal_amd64.deb
#安装软件
dpkg -i nginx_1.18.0-2~focal_amd64.deb
3.apt命令使用
apt命令介绍:
1.apt等同于Centos7的yum命令
2.apt-get是第一代的包管理工具,最稳定
3.apt是改进的包管理工具,比apt-get要先进,官方推荐使用apt来管理软件
4.apt的源文件只有一个文件,而yum的源文件是分开多个的。
常用命令:
apt-cache search nginx
apt download nginx
apt install package
apt --reinstall install package
apt remove package
应用案例:私有云网盘
#1.配置apt源
sudo vim /etc/apt/sources.list
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
#2.安装nginx+php
sudo apt install php7.4 php7.4-fpm php7.4-gd php7.4-curl php7.4-mbstring nginx unzip -y
#3.创建nginx配置文件
sudo vim /etc/nginx/conf.d/kod.conf
server \{
listen 80;
server_name kod.oldboy.com;
root /code;
index index.php index.html;
location ~ \.php$ \{
root /code;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
\}
\}
#4.修改php-fpm监听模式
sudo vim /etc/php/7.4/fpm/pool.d/www.conf
listen = 127.0.0.1:9000
#5.下载网盘代码并解压
mkdir /code/
wget http://static.kodcloud.com/update/download/kodexplorer4.40.zip
sudo unzip kodexplorer4.40.zip -d /code/
sudo chown -R www-data:www-data /code/
#6.启动并测试
sudo systemctl stop apache2.service
sudo systemctl start nginx php7.4-fpm
#7.页面访问
10.0.0.200
应用案例:博客系统
sudo apt install openjdk-8-jre-headless -y
sudo java -version
sudo wget https://dl.halo.run/release/halo-1.4.2.jar
sudo java -jar halo-1.4.2.jar
http://10.0.0.200:8090/
CentOS和Ubuntu安装包区别
操作内容 | Centos 6/7 | Debian/Ubuntu |
---|---|---|
1.软件包后缀 | *.rpm | *.deb |
2.软件源配置文件 | /etc/yum.conf | /etc/apt/sources.list |
3.更新软件包列表 | yum makecache fast | apt update |
4.从软件仓库安装软件 | yum install package | apt install package |
5.安装本地软件包 | rpm -i pkg.rpm | dpkg -i pkg.deb |
6.删除软件包 | yum remove package | apt remove package |
7.获取某软件包的信息 | yum search package | apt search package |
更新: 2024-09-21 20:02:00