🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第2章 第9课

咱们今天来聊聊软件包管理和网络配置这点事儿。结合咱们装软件、搭环境、连网络的日常吧~~


一、软件包:格式五花八门,得认清门道

想象一下,你在网上下载软件,就像收快递。不同格式的软件包,就是不同包装的快递箱,拆法不一样。

1.rpm (Red Hat系专属快递箱):
特点: 主要用在Red Hat, CentOS, Fedora这些系统。它包含了预编译好的二进制文件、配置文件、依赖信息等。安装/卸载速度快,但依赖关系需要自己解决*(就像拼乐高少零件得自己找)。
*命名规则: 软件名-版本号-发布号.系统架构.rpm
*例子: firefox-102.15.0-1.el7.centos.x86_64.rpm
*firefox:软件名
*102.15.0:主版本号
*1:发布号(打包者可能修复了某些问题)
*el7.centos:适用于Enterprise Linux 7 / CentOS 7
*x86_64:64位CPU架构
*大学生活场景: 实验室的CentOS服务器需要装个特定版本的Nginx,官网只提供了rpm包。

2.deb (Debian/Ubuntu系专属快递箱):
*特点: Debian, Ubuntu, Mint这些系统用的。和rpm类似,也是预编译好的包,包含文件、依赖信息。同样需要处理依赖。
*命名规则: 软件名_版本号-修订号_架构.deb
*例子: vlc_3.0.16-1build7_amd64.deb
*vlc:软件名
*3.0.16:主版本号
*1build7:修订号(Ubuntu打包者可能做了调整)
*amd64:64位架构(等同于x86_64)
*大学生活场景: 你个人笔记本装的是Ubuntu,想装个WPS办公,官网下载的就是deb包。

3.tar.gz / tar.xz (万能原材料包裹):
特点: 这是源代码包(也可能是预编译好的二进制,但没包管理信息)。.tar.gz.tar.xz只是压缩格式,核心是里面的tar归档。最大特点:灵活,但需要自己“组装”。可能需要编译(./configure, make, make install),也可能解压就能用(绿色软件)。完全不处理依赖*,需要自己确保环境。
*命名规则: 比较自由,通常包含软件名和版本号。
*例子: python-3.11.4.tar.xz (Python源代码), jdk-17_linux-x64_bin.tar.gz (预编译的Java JDK)
*大学生活场景:
*做项目需要最新版Node.js,但系统仓库里的版本太老,去官网下载tar.xz包自己安装。
*下载一个免安装的Linux版QQ,解压tar.gz后直接运行里面的可执行文件(绿色安装)。

# 示例:解压并编译安装一个典型的 tar.gz 源代码包 (假设是 node-v18.16.0.tar.gz)
tar -xvf node-v18.16.0.tar.gz# 解压包,v 是显示详情,f 是指定文件
cd node-v18.16.0# 进入解压目录
./configure# 检查系统环境,生成编译配置。可能需要安装gcc, make等开发工具
make -j4# 开始编译,-j4 表示用4个CPU核心并行加速
sudo make install# 将编译好的文件安装到系统目录 (需要root权限)

二、安装方式:看菜吃饭,各显神通

根据你手里的“快递箱”和系统环境,选择最合适的安装姿势。

1.rpm 命令 (直接拆RPM快递箱):
*核心操作:
*-i:安装 (Install)
*-v:显示详细信息 (Verbose)
*-h:显示进度条 (Hash marks)
*-e:卸载 (Erase)
*-q:查询 (Query)
*-U:升级 (Upgrade)
*痛点:依赖地狱! 手动解决依赖极其痛苦。
*例子: 在CentOS 7上安装下载好的Firefox rpm包,并查看是否安装成功。

# 安装 firefox rpm包 (常用 ivh 组合)
sudo rpm -ivh firefox-102.15.0-1.el7.centos.x86_64.rpm
# 如果提示缺少依赖 libxxx.so.5,你需要先找到包含这个库的rpm包安装... (痛苦开始)

# 查询已安装的firefox包
rpm -q firefox
# 输出:firefox-102.15.0-1.el7.centos.x86_64

# 卸载firefox
sudo rpm -e firefox

2.yum / dnf (RPM系的智能管家 - 自动找零件):
特点: 基于rpm,但革命性解决了依赖问题*!它连接互联网上的软件仓库(Yum Repository/DNF Repository),自动下载所需依赖。dnfyum的现代替代品(CentOS 8+/Fedora)。
*核心操作:
*install:安装
*remove:卸载
*update:更新指定软件包
*upgrade:更新所有可更新软件包
*search:搜索软件包
*list:列出软件包(可用、已安装等)
*info:查看软件包详细信息
*大学生活场景: 在实验室服务器上快速安装、更新或卸载软件(如MySQL, Git, Python3),不用操心依赖。

# 搜索仓库里关于 nginx 的包
yum search nginx
# 或 dnf search nginx (在CentOS 8+)

# 安装 nginx 并自动处理所有依赖 (太省心了!)
sudo yum install nginx
# 或 sudo dnf install nginx

# 更新 nginx
sudo yum update nginx

# 查看 nginx 包详细信息
yum info nginx

# 卸载 nginx (也会处理依赖)
sudo yum remove nginx

3.dpkg & apt (Debian/Ubuntu系的黄金搭档):
dpkg 类似rpm,直接操作deb包。同样有依赖问题。
apt (Advanced Package Tool): 类似yum/dnf,基于dpkg
自动解决依赖,连接APT软件仓库。是Ubuntu/Debian用户最常用的命令。
核心操作 (apt): 和yum/dnf非常相似:
*install:安装
*remove:卸载
*update:更新本地软件包索引(
重要!
* 相当于刷新仓库商品清单)
*upgrade:升级所有可升级软件包
*search:搜索
*list:列出
*show:查看详细信息
*大学生活场景: 在Ubuntu笔记本上装开发环境 sudo apt install build-essential,或者装个Steam玩游戏 sudo apt install steam

# 更新本地软件包索引 (每次安装前最好做一下)
sudo apt update

# 搜索包含 wps 的包
apt search wps

# 安装 WPS Office (会自动拉取依赖)
sudo apt install wps-office

# 查看已安装的wps-office信息
apt show wps-office

# 卸载 WPS Office
sudo apt remove wps-office

4.编译安装 (自力更生,深度定制):
场景: 需要最新特性、特定版本、自定义编译选项、或仓库里没有的软件。
流程: 下载源码包 (tar.gz/tar.xz) -> 解压 -> ./configure (检查环境,配置选项) -> make (编译) -> sudo make install (安装)。
优缺点: 最灵活,能优化性能或开启实验性功能。但
最麻烦
,耗时长,易出错,完全不处理依赖*,卸载清理可能不彻底。
*大学生活场景: 课程项目要求用最新版OpenCV的某个实验性模块,或者自己研究某个开源项目。

# 示例:编译安装一个假设的 "super-tool" (步骤通用)
wget https://example.com/super-tool-2.0.tar.gz # 下载源码
tar -xzf super-tool-2.0.tar.gz# 解压
cd super-tool-2.0
./configure --prefix=/usr/local/super-tool# 配置,指定安装路径
make# 编译
sudo make install# 安装到系统

# 运行 (可能需要将 /usr/local/super-tool/bin 加入 PATH 环境变量)
/usr/local/super-tool/bin/super-tool --help

# 卸载 (如果Makefile支持) 通常比较麻烦,可能需要手动删除安装的文件
cd super-tool-2.0
sudo make uninstall # 不一定有效
# 或者手动删除 /usr/local/super-tool 目录

5.绿色安装 (解压即用):
场景: 软件开发者直接提供了编译好的Linux二进制文件,打包在tar.gz里。通常是图形界面程序或独立工具。
方法: 解压下载的tar.gz包,直接运行里面的可执行文件。
不依赖包管理器,不安装到系统目录
优缺点: 简单、干净(删文件夹就没了)、多版本共存容易。但
需要手动处理启动器/快捷方式、更新、依赖库
*。
*大学生活场景: 下载官方Linux版QQ、迅雷、VSCode的.tar.gz包。

# 示例:运行下载的绿色版 VSCode
tar -xzf code-stable-x64-xxxxx.tar.gz # 解压
cd VSCode-linux-x64# 进入解压目录
./code# 运行可执行文件

# 通常会在解压目录里找到 .desktop 文件,可以复制到 ~/.local/share/applications/ 创建桌面菜单快捷方式

三、网络管理:连不上网?先看看这些

实验室断网了?服务器ping不通了?这些命令是你的诊断工具箱。

1.ifconfig (传统网卡信息查看 - 逐渐被淘汰):
*功能: 查看和配置网络接口(网卡)信息(IP地址、子网掩码、MAC地址、收发数据包统计)。
*注意: 很多新系统默认不装了,用ip addr代替。
*例子: 快速看一眼本机IP和网卡状态。

ifconfig
# 输出示例:
# eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu 1500
#inet 192.168.1.100netmask 255.255.255.0broadcast 192.168.1.255
#inet6 fe80::a00:27ff:fe4c:3d8aprefixlen 64scopeid 0x20<link>
#ether 08:00:27:4c:3d:8atxqueuelen 1000(Ethernet)
#RX packets 12345bytes 987654321 (987.6 MB)
#TX packets 6789bytes 123456789 (123.4 MB)
# lo: ... (回环接口 127.0.0.1)

2.ip (强大的现代网络配置工具 - 首选):
*功能: ifconfig, route, arp等命令的现代替代品,功能更强大统一。子命令很多:
*ip addr / ip a:查看和管理IP地址 (等价于 ifconfig 主要功能)
*ip link:查看和管理网络接口链路层状态 (物理连接状态)
*ip route / ip r:查看和管理路由表
*ip neigh:查看和管理ARP邻居缓存 (IP-MAC映射)
*例子: 查看详细IP和路由信息,临时添加一个IP。

# 查看所有网络接口的IP地址 (比 ifconfig 信息更结构化)
ip addr show
# 或简写 ip a

# 查看路由表 (看数据包怎么走)
ip route show
# 或简写 ip r
# 输出示例:default via 192.168.1.1 dev eth0 表示默认网关是192.168.1.1, 走eth0网卡

# 临时给 eth0 添加一个辅助IP (重启失效)
sudo ip addr add 192.168.1.199/24 dev eth0

3.netstat / ss (网络连接和统计侦察兵):
功能: 查看网络连接状态、监听端口、路由表、网络接口统计等。ss (Socket Statistics) 是netstat的现代替代品,速度更快,输出更简洁,推荐优先使用ss*。
*常用选项:
*-t:TCP连接
*-u:UDP连接
*-l:监听(Listening)状态的套接字
*-n:用数字显示地址和端口 (不解析主机名和服务名)
*-p:显示进程信息 (需要sudo)
*-a:显示所有
*大学生活场景:
*检查自己写的Web服务器程序(端口8080)是否成功监听:ss -tlnp | grep 8080
*怀疑服务器被挖矿了,看有哪些异常外连:sudo ss -tunp
*查看本机开了哪些服务端口:sudo ss -ltn

# 用 netstat 查看所有TCP监听端口和对应的进程名 (不推荐,慢)
sudo netstat -tulnp

# 用 ss 做同样的事情 (推荐,快!)
sudo ss -tlnp# -l 监听, -n 数字, -p 进程, -t TCP

# 输出示例片段:
# StateRecv-Q Send-Q Local Address:PortPeer Address:Port
# LISTEN0128*:22*:*users:(("sshd",pid=1234,fd=3))
# 表示 sshd 进程(pid=1234)正在监听 22 端口 (SSH服务)

# 查看所有已建立的TCP连接
ss -t

4.ping & traceroute / tracepath / mtr (网络连通性侦探):
ping 最基础!发送ICMP回显请求,测试到目标主机的连通性基本延迟ping 不通是第一步排查点。
traceroute / tracepath 显示数据包到达目标主机经过的
每一跳路由器(路径),用于定位网络故障发生在哪个环节。tracepath 不需要root权限。
mtr (My Traceroute): ping + traceroute 的增强版,实时刷新显示到每一跳的丢包率和延迟,
诊断网络抖动/丢包神器
*。
*大学生活场景:
*宿舍WiFi连不上校园网认证页面?先 ping 网关IP 看通不通。
*访问国外网站慢?mtr google.com 看卡在哪一跳丢包严重。

# 测试到百度是否连通 (默认持续ping, Ctrl+C停止)
ping www.baidu.com

# 追踪到百度的路径 (看经过哪些路由器)
traceroute www.baidu.com
# 或 (通常不需要root)
tracepath www.baidu.com

# 更强大的实时路径和延迟/丢包监控 (推荐)
mtr www.baidu.com

四、网络配置与DNS:让机器找到组织

光有网卡还不够,得告诉它地址怎么分配,名字怎么解析。

1.网卡IP配置 (静态 vs DHCP):
*静态IP: 手动指定固定IP、子网掩码、网关、DNS。服务器必备。
*DHCP: 自动从路由器获取IP配置。笔记本常用。
*配置文件路径 (CentOS/RHEL): /etc/sysconfig/network-scripts/ifcfg-<网卡名> (如 ifcfg-eth0)
*配置文件路径 (Ubuntu/Debian): /etc/netplan/*.yaml (新) 或 /etc/network/interfaces (旧)
*命令修改 (临时生效):ip addrip route (见前面例子)。

# 示例:CentOS 7 静态IP配置 /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static# 静态配置 (dhcp 表示自动获取)
NAME=eth0
DEVICE=eth0
ONBOOT=yes# 开机启动
IPADDR=192.168.1.100# 静态IP
NETMASK=255.255.255.0# 子网掩码 (或用 PREFIX=24)
GATEWAY=192.168.1.1# 默认网关
DNS1=8.8.8.8# 主DNS
DNS2=8.8.4.4# 备DNS

# 修改后重启网络服务生效 (CentOS 7)
sudo systemctl restart network

# Ubuntu 20.04+ 使用 netplan (YAML格式) 示例 /etc/netplan/00-installer-config.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no# 禁用DHCP
addresses: [192.168.1.100/24] # IP和掩码
routes:
- to: default
via: 192.168.1.1# 网关
nameservers:
addresses: [8.8.8.8, 8.8.4.4] # DNS

# 应用 netplan 配置
sudo netplan apply

2.路由配置:
核心: 告诉系统数据包往哪里送。最重要的就是默认网关* (Default Gateway),指向你的路由器。
*查看: ip route showroute -n
*添加/删除路由: 主要用 ip route 命令 (临时) 或写在配置文件里 (永久)。

# 查看路由表
ip r
# 添加一条临时静态路由 (例如访问 10.8.0.0/24 网段走另一个网关 192.168.1.254)
sudo ip route add 10.8.0.0/24 via 192.168.1.254 dev eth0

# 删除上面添加的路由
sudo ip route del 10.8.0.0/24

3.DNS配置:
作用:www.baidu.com 这样的域名转换成 14.119.104.189 这样的IP地址。
配置文件: /etc/resolv.conf (通常由NetworkManager或systemd-resolved管理,
不建议直接修改**,最好在网卡配置文件里配DNS)。
*测试命令: nslookupdig (更强大)。

# 查看当前使用的DNS服务器 (通常从 resolv.conf 读)
cat /etc/resolv.conf
# 输出示例:nameserver 8.8.8.8

# 使用 nslookup 查询域名解析
nslookup www.baidu.com

# 使用更专业的 dig 查询 (显示更详细信息)
dig www.baidu.com

总结一下学长的唠叨:

*软件包: rpm/deb是带依赖清单的预装包,tar.gz是原材料或半成品。优先用yum/dnf(RHEL系)或apt(Debian系)安装,省心省力。编译安装和绿色安装用在特殊需求。
*网络命令: ip (看地址路由) + ss (看连接端口) + ping/mtr (测连通路径) 是诊断三板斧。
*网络配置: 搞清静态IP/DHCP,配置文件在/etc/下找对应网卡文件,配好IP、网关、DNS。/etc/resolv.conf管域名解析。

这些就是Linux日常管理和排障的硬核基础。多敲命令,多实践,遇到问题别慌,按这个思路一步步查,慢慢就成老司机了!(๑•̀ㅂ•́)و✧

posted on 2025-08-04 03:49  鱼油YOU  阅读(101)  评论(0)    收藏  举报