跳到主要内容

第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/7Debian/Ubuntu
1.软件包后缀*.rpm*.deb
2.软件源配置文件/etc/yum.conf/etc/apt/sources.list
3.更新软件包列表yum makecache fastapt update
4.从软件仓库安装软件yum install packageapt install package
5.安装本地软件包rpm -i pkg.rpmdpkg -i pkg.deb
6.删除软件包yum remove packageapt remove package
7.获取某软件包的信息yum search packageapt search package

更新: 2024-09-21 20:02:00