18-Linux软件包管理
第1章 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
第2章 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/
第3章 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