Linux运维新人自用笔记(乌班图apt命令和dpkg命令、两系统指令区别,rpm解决路径依赖、免安装配置java环境)
内容全为个人理解和自查资料梳理,欢迎各位大神指点!
每天学习较为零散。
day17
一、Ubuntu apt命令和dpkg命令
二进制命令+配置文件+数据文件,打包好的单个文件
Windows :.exe macos:.dmg
后缀 | 适用系统 | 安装方式 |
---|---|---|
.deb | Debian/Ubuntu | dpkg -i 或 apt install |
.rpm | RHEL/CentOS/Fedora | rpm -ivh 或 dnf install |
.tar.gz | 通用 | 解压后编译安装 |
.AppImage | 通用 | 直接运行 |
.snap | Snap 支持的系统 | snap install |
编码包:编译型语言源码不用配置环境即可运行程序,解释型语言编码需要配置安装对应环境。
功能 | CentOS 7 (RHEL系) | Ubuntu/Debian系 |
---|---|---|
安装软件包 | yum install | apt install |
删除软件包 | yum remove | apt remove |
更新软件包列表 | yum check-update | apt update |
升级所有软件包 | yum upgrade | apt upgrade |
搜索软件包 | yum search | apt search |
查看软件包信息 | yum info | apt show |
列出已安装的包 | rpm -qa | dpkg -l |
安装本地 .rpm 包 | rpm -ivh | dpkg -i (安装 .deb ) |
卸载软件包 | rpm -e | dpkg -r |
查询文件属于哪个包 | rpm -qf | dpkg -S |
apt命令
高级工具,自动解决依赖,适合日常安装/升级。
功能 | 命令示例 | 说明 |
---|---|---|
更新软件包列表 | sudo apt update | 从软件源服务器获取最新的包列表(不安装)。 |
升级所有可升级的软件包 | sudo apt upgrade | 仅升级已安装的包(不删除旧包)。 |
完整升级(可能删除旧包) | sudo apt full-upgrade | 升级所有包,必要时会删除冲突的旧包(更彻底)。 |
安装软件包 | sudo apt install nginx | 安装指定软件包(自动处理依赖)。 |
删除软件包(保留配置) | sudo apt remove nginx | 卸载软件包,但保留配置文件。 |
彻底删除软件包(含配置) | sudo apt purge nginx | 完全删除软件包及其配置文件。 |
清理无用依赖 | sudo apt autoremove | 删除自动安装且不再需要的依赖包。 |
修复损坏的依赖 | sudo apt --fix-broken install | 修复因依赖问题导致的安装失败。 |
搜索软件包 | apt search "python3" | 按关键词搜索可用的软件包。 |
查看软件包详细信息 | apt show nginx | 显示软件包的版本、依赖、描述等信息。 |
列出已安装的包 | apt list --installed | 显示所有已安装的软件包。 |
检查可升级的包 | apt list --upgradable | 列出当前可升级的软件包。 |
下载软件包(不安装) | sudo apt download nginx | 下载 .deb 文件到当前目录(不安装)。 |
查看软件包依赖 | apt depends nginx | 显示某个包的依赖关系。 |
查看反向依赖 | apt rdepends nginx | 显示哪些包依赖当前包。 |
清除软件包缓存 | sudo apt clean | 删除所有已下载的 .deb 包缓存(/var/cache/apt/archives/ )。 |
仅删除旧版本缓存 | sudo apt autoclean | 仅删除过时的 .deb 缓存文件。 |
添加第三方仓库 | sudo add-apt-repository ppa:nginx/stable sudo apt update | 添加 PPA 仓库并更新列表(需先安装 software-properties-common )。 |
dpkg命令
底层工具,直接操作 .deb
文件,不处理依赖(需手动解决)。
功能 | 命令示例 | 说明 |
---|---|---|
安装本地 .deb 包 | sudo dpkg -i package.deb | 安装本地 .deb 文件(不自动解决依赖)。 |
卸载软件包(保留配置) | sudo dpkg -r package_name | 移除已安装的包,保留配置文件。 |
彻底卸载(含配置) | sudo dpkg -P package_name | 完全删除软件包及其配置文件。 |
列出所有已安装的包 | dpkg -l | 显示系统中所有已安装的 .deb 包。 |
搜索特定已安装的包 | dpkg -l | grep nginx | 通过关键词过滤已安装的包。 |
查看 .deb 包内容 | dpkg -c package.deb | 列出 .deb 文件包含的所有文件(不解压)。 |
查看已安装包的文件 | dpkg -L package_name | 显示某个包安装的所有文件路径。 |
查询文件所属的包 | dpkg -S /path/to/file | 根据文件路径反查所属的包名。 |
查看 .deb 包信息 | dpkg -I package.deb | 显示 .deb 包的元信息(版本、依赖等)。 |
检查包是否已安装 | dpkg -s package_name | 显示包的详细状态(如未安装会提示)。 |
重新配置已安装的包 | sudo dpkg-reconfigure package_name | 重新运行包的配置向导(如 tzdata 时区设置)。 |
修复损坏的包 | sudo dpkg --configure -a | 尝试修复未完成安装或配置的包。 |
root@xun:~# apt show nginx
Package: nginx
Version: 1.28.0-1~jammy
Priority: optional
Section: httpd
Maintainer: NGINX Packaging <nginx-packaging@f5.com>
Installed-Size: 3,797 kB
Provides: httpd, nginx, nginx-r1.28.0root@xun:~# dpkg -l | grep nginx
ii nginx 1.28.0-1~jammy amd64 high performance web server
使用 Ubuntu 安装光盘(ISO)作为本地软件源
创建挂载点
mkdir -p /media/cdrom
挂载光盘
mount /dev/cdrom /media/cdrom 如果是ISO 文件使用
mount -o loop /path/to/ubuntu.iso /media/cdrom查看挂载是否成功 看到 pool、dists 等目录
ls /media/cdrom配置光盘为本地软件源,备份原有源列表
cp /etc/apt/sources.list /etc/apt/sources.list.bak编辑 sources.list,仅保留光盘源
nano /etc/apt/sources.list注释掉所有网络源(行首加 #),添加光盘源
deb file:/media/cdrom jammy main restricted universe multiverse更新软件包列表
sudo apt update从光盘安装 Nginx,尝试安装:
sudo apt install nginx验证安装:检查服务状态,测试默认页面
sudo systemctl status nginx
curl http://localhost 如果光盘中没有 Nginx,需从其他设备手动下载 Nginx .deb 包并安装,再通过光盘/U盘传输到离线机器。下载 Nginx .deb 包
在有网络的设备上访问 Nginx 官方下载页,选择稳定版(Stable)的 .deb 包或直接使用 wget:
wget https://nginx.org/packages/ubuntu/pool/nginx/n/nginx/nginx_<版本>.deb
将下载的 .deb 文件拷贝到光盘/U盘,传输到目标机器。手动安装 .deb 包
尝试直接安装:
dpkg -i nginx_<版本>.deb 如果报依赖错误,需提前准备或从光盘获取安装依赖(如 libpcre3、zlib1g):
apt --fix-broken install # 自动解决依赖启动 Nginx:
sudo systemctl start nginx
小版本升级
下载新版本 .deb 包
wget https://nginx.org/packages/ubuntu/pool/nginx/n/nginx/nginx_1.25.3-1~jammy_amd64.deb安装并覆盖旧版本
sudo dpkg -i nginx_1.25.3-1~jammy_amd64.deb解决依赖问题
sudo apt --fix-broken install重启服务
sudo systemctl restart nginx
二、Ubuntu 22.04与CentOS 7 主要区别
包管理
功能 | Ubuntu 22.04 (APT/Dpkg) | CentOS 7 (YUM/RPM) |
---|---|---|
安装软件 | sudo apt install package | sudo yum install package |
卸载软件 | sudo apt remove package | sudo yum remove package |
更新软件列表 | sudo apt update | sudo yum check-update |
升级所有软件 | sudo apt upgrade | sudo yum update |
搜索软件包 | apt search keyword | yum search keyword |
查看已安装软件 | apt list --installed | yum list installed |
清理缓存 | sudo apt autoremove | sudo yum clean all |
网络配置
功能 | Ubuntu 22.04 | CentOS 7 |
---|---|---|
查看IP地址 | ip a 或 ip addr | 相同 |
重启网络 | sudo netplan apply (需配置YAML) | sudo systemctl restart network |
防火墙管理 | sudo ufw allow 22 (默认未安装) | sudo firewall-cmd --add-port=22/tcp --permanent |
配置文件路径差异
Ubuntu:/etc/netplan/*.yaml
(网络配置)
CentOS 7:/etc/sysconfig/network-scripts/ifcfg-*
软件包名称差异
Ubuntu:apache2
(Apache)、nginx
CentOS 7:httpd
(Apache)、nginx
默认工具差异
Ubuntu默认安装nano
作为文本编辑器,CentOS 7默认安装vi
。
三、centos7 rpm命令
功能 | 常用命令示例 | 说明 |
---|---|---|
安装 | rpm -ivh package.rpm | 安装软件包(-i =安装,-v =显示详细信息,-h =显示进度条) |
升级 | rpm -Uvh package.rpm | 升级软件包(若未安装则自动转为安装) |
卸载 | rpm -e package_name | 卸载指定软件包(不检查依赖) |
查询 | rpm -q package_name | 检查软件包是否安装 |
列出所有包 | rpm -qa | 显示系统中所有已安装的 RPM 包 |
查询文件归属 | rpm -qf /path/to/file | 查看某个文件属于哪个 RPM 包(如 rpm -qf /usr/bin/nginx ) |
验证包完整性 | rpm -V package_name | 检查软件包文件是否被修改(返回空表示正常) |
显示依赖 | rpm -qR package_name | 列出某个包的依赖项(如 rpm -qR nginx ) |
安装nginx解决依赖
一、用wget指令安装nginx,结合yum命令解决路径依赖
#配置软件库
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
wget https://nginx.org/download/nginx-1.28.0.tar.gz#解压缩tar -zxvf nginx-1.28.0.tar.gz # ./configure 运行当前目录下的 configure 脚本,检测系统环境并生成编译配置。
# --prefix= 指定 Nginx 的安装目录./configure --prefix=/nginx/new_nginx./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.#解决pcre依赖路径
yum install pcre-devel./configure --prefix=/nginx/new_nginx./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.#解决zlib依赖环境
yum install zlib-devel./configure --prefix=/nginx/new_nginx
添加http认证
#给nginx服务添加http认证
[root@626nmn nginx-1.28.0]# ./configure --prefix=/nginx/new_nginx1 --with-http_ssl_module#解决依赖
[root@626nmn nginx-1.28.0]# yum -y install openssl-devel #添加完毕
[root@626nmn nginx-1.28.0]# ./configure --prefix=/nginx/new_nginx1 --with-http_ssl_modulenginx path prefix: "/nginx/new_nginx1"nginx binary file: "/nginx/new_nginx1/sbin/nginx"nginx modules path: "/nginx/new_nginx1/modules"nginx configuration prefix: "/nginx/new_nginx1/conf"nginx configuration file: "/nginx/new_nginx1/conf/nginx.conf"nginx pid file: "/nginx/new_nginx1/logs/nginx.pid"nginx error log file: "/nginx/new_nginx1/logs/error.log"nginx http access log file: "/nginx/new_nginx1/logs/access.log"nginx http client request body temporary files: "client_body_temp"nginx http proxy temporary files: "proxy_temp"nginx http fastcgi temporary files: "fastcgi_temp"nginx http uwsgi temporary files: "uwsgi_temp"nginx http scgi temporary files: "scgi_temp"#安装
[root@626nmn new_nginx1]# make && make install[root@626nmn nginx]# ll
total 1252
drwxr-xr-x. 6 root root 54 Jun 6 23:44 new_nginx1
drwxr-xr-x. 9 502 games 257 Jun 6 23:29 nginx-1.28.0
-rw-r--r--. 1 root root 1280111 Apr 23 19:55 nginx-1.28.0.tar.gz
[root@626nmn nginx]# cd new_nginx1/#配置 前端 日志 二进制文件
[root@626nmn new_nginx1]# ll
total 4
drwxr-xr-x. 2 root root 4096 Jun 6 23:44 conf
drwxr-xr-x. 2 root root 40 Jun 6 23:44 html
drwxr-xr-x. 2 root root 6 Jun 6 23:44 logs
drwxr-xr-x. 2 root root 19 Jun 6 23:44 sbin#运行nginx服务
[root@626nmn new_nginx1]# /nginx/new_nginx1/sbin/nginx
[root@626nmn new_nginx1]# netstat -tunlp |grep :80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9351/nginx: master
[root@626nmn new_nginx1]# #访问ip
Welcome to nginx!
If you see this page, the nginx web server is successfully installed and working. Further configuration is required.For online documentation and support please refer to nginx.org.
Commercial support is available at nginx.com.Thank you for using nginx.
用rpm命令和yum命令解决安装和依赖路径
在 Index of /packages/ 网站找到nginx的rpm包
[root@626nmn nginx]# rpm -ivh nginx-1.22.1-1.el7.ngx.x86_64.rpm
warning: nginx-1.22.1-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 7bd9bf62: NOKEY
error: Failed dependencies:libpcre2-8.so.0()(64bit) is needed by nginx-1:1.22.1-1.el7.ngx.x86_64#解决依赖路径
[root@626nmn nginx]# yum libpcre* -y[root@626nmn nginx]# rpm -ivh nginx-1.22.1-1.el7.ngx.x86_64.rpm
warning: nginx-1.22.1-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 7bd9bf62: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:nginx-1:1.22.1-1.el7.ngx ################################# [100%]
----------------------------------------------------------------------#查询nginx安装包
[root@626nmn nginx]# rpm -qa nginx
nginx-1.22.1-1.el7.ngx.x86_64##查询nginx安装版本信息
[root@626nmn nginx]# rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.22.1
Release : 1.el7.ngx
Architecture: x86_64
Install Date: Fri 06 Jun 2025 11:09:31 PM CST
Group : System Environment/Daemons
Size : 2917123
License : 2-clause BSD-like license
Signature : RSA/SHA256, Wed 19 Oct 2022 06:58:05 PM CST, Key ID abf5bd827bd9bf62
Source RPM : nginx-1.22.1-1.el7.ngx.src.rpm
Build Date : Wed 19 Oct 2022 06:48:30 PM CST
Build Host : ip-10-1-17-124.eu-central-1.compute.internal
Relocations : (not relocatable)
Vendor : NGINX Packaging <nginx-packaging@f5.com>
URL : https://nginx.org/
Summary : High performance web server
Description :
nginx [engine x] is an HTTP and reverse proxy server, as well as
a mail proxy server.
#升级小版本(需要先下载新版本rpm包)
[root@626nmn nginx]# rpm -Uvh nginx-1.24.0-1.el7.ngx.x86_64.rpm
warning: nginx-1.24.0-1.el7.ngx.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 7bd9bf62: NOKEY
Preparing... ################################# [100%]
Updating / installing...1:nginx-1:1.24.0-1.el7.ngx ################################# [ 50%]
Cleaning up / removing...2:nginx-1:1.22.1-1.el7.ngx ################################# [100%]#查询
[root@626nmn nginx]# rpm -qi nginx
Name : nginx
Epoch : 1
Version : 1.24.0
Release : 1.el7.ngx
Architecture: x86_64
Install Date: Fri 06 Jun 2025 11:15:26 PM CST
Group : System Environment/Daemons
Size : 2938462
License : 2-clause BSD-like license
Signature : RSA/SHA256, Wed 12 Apr 2023 01:47:07 AM CST, Key ID abf5bd827bd9bf62
Source RPM : nginx-1.24.0-1.el7.ngx.src.rpm
Build Date : Wed 12 Apr 2023 01:22:36 AM CST
Build Host : ip-10-1-17-154.eu-central-1.compute.internal
Relocations : (not relocatable)
Vendor : NGINX Packaging <nginx-packaging@f5.com>
URL : https://nginx.org/
Summary : High performance web server
Description :
nginx [engine x] is an HTTP and reverse proxy server, as well as
a mail proxy server.
四、免安装配置java环境
下载java
wget https://download.oracle.com/java/24/latest/jdk-24_linux-x64_bin.tar.gz解压缩
tar -zxvf jdk-24_linux-x64_bin.tar.gz 添加java环境配置文件
vim /etc/profileexport JAVA_HOME=/a1/jdk
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/bin:/a1/jdk/bin/重新登陆
logout[root@626nmn ~]# java -version
java version "24.0.1" 2025-04-15
Java(TM) SE Runtime Environment (build 24.0.1+9-30)
Java HotSpot(TM) 64-Bit Server VM (build 24.0.1+9-30, mixed mode, sharing)[root@626nmn a1]# cat HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}#编译代码
[root@626nmn a1]# javac HelloWorld.java #运行代码
[root@626nmn a1]# java HelloWorld
Hello World![root@626nmn a1]# ll
total 237520
-rw-r--r--. 1 root root 426 Jun 8 22:14 HelloWorld.class
-rw-r--r--. 1 root root 107 Jun 8 22:09 HelloWorld.java
lrwxrwxrwx. 1 root root 14 Jun 8 21:54 jdk -> /a1/jdk-24.0.1
drwxr-xr-x. 9 root root 136 Jun 8 21:51 jdk-24.0.1
-rw-r--r--. 1 root root 243210953 Mar 5 15:55 jdk-24_linux-x64_bin.tar.gz
[root@626nmn a1]#