← 返回首页
📦

Linux包管理基础

📂 devops ⏱ 2 min 245 words

Linux包管理基础

包管理器概述

Linux使用包管理器来安装、更新和删除软件包。不同的发行版使用不同的包管理器。

Debian/Ubuntu - APT

基本操作

# 更新包索引
sudo apt update

# 安装软件包
sudo apt install nginx

# 安装多个包
sudo apt install nginx mysql-server php-fpm

# 升级软件包
sudo apt upgrade

# 升级所有包
sudo apt full-upgrade

# 删除软件包
sudo apt remove nginx

# 删除包及其配置
sudo apt purge nginx

# 清理依赖
sudo apt autoremove

搜索和信息

# 搜索包
apt search nginx

# 查看包信息
apt show nginx

# 查看已安装的包
dpkg -l | grep nginx

# 查看包安装的文件
dpkg -L nginx

# 查看文件属于哪个包
dpkg -S /usr/sbin/nginx

软件源管理

# 查看软件源
cat /etc/apt/sources.list

# 添加PPA
sudo add-apt-repository ppa:nginx/stable
sudo apt update

CentOS/RHEL - YUM/DNF

基本操作

# 安装软件包
sudo yum install nginx

# 升级软件包
sudo yum update

# 删除软件包
sudo yum remove nginx

# 搜索包
yum search nginx

# 查看包信息
yum info nginx

# 查看已安装的包
rpm -qa | grep nginx

仓库管理

# 添加仓库
sudo yum install epel-release

# 查看启用的仓库
yum repolist

# 清理缓存
yum clean all

DNF(CentOS 8+)

DNF是YUM的下一代版本:

# 基本操作与YUM类似
sudo dnf install nginx
sudo dnf update
sudo dnf remove nginx

软件包类型

源码包

# 下载源码
wget http://example.com/software-1.0.tar.gz

# 解压
tar -xzf software-1.0.tar.gz
cd software-1.0

# 编译安装
./configure --prefix=/usr/local/software
make
sudo make install

实践:安装Web服务器环境

#!/bin/bash
# Debian/Ubuntu

# 更新系统
sudo apt update
sudo apt upgrade -y

# 安装Nginx
sudo apt install nginx -y
sudo systemctl enable nginx

# 安装MySQL
sudo apt install mysql-server -y
sudo systemctl enable mysql

# 安装PHP
sudo apt install php-fpm php-mysql -y

# 配置Nginx使用PHP
cat > /etc/nginx/sites-available/default << 'EOF'
server {
    listen 80;
    root /var/www/html;
    index index.php index.html;
    
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php*-fpm.sock;
    }
}
EOF

sudo systemctl restart nginx

软件包依赖管理

# 查看依赖关系
apt-cache depends nginx

# 查看依赖谁
apt-cache rdepends nginx

# 强制安装(不推荐)
dpkg --force-depends -i package.deb

总结

包管理是Linux系统管理的基础。熟练使用包管理器,可以高效地管理软件的安装、更新和维护。