未记录事实核验 · 状态:现行内容

记录仅说明核验时间与维护状态,不保证适用于所有环境;使用前请留意正文中的版本、适用条件与风险提示。

warning 适用边界与维护说明

本文适用于 Linux 包管理、Python 依赖安装和 conda 环境隔离的基础练习,不是生产服务器升级方案或 Hadoop 集群部署指南。请按实际发行版及软件源支持情况选择命令;Miniconda 下载示例限 Linux x86_64,环境加载示例使用 Bash,系统安装及 /opt 写入需相应权限。pip 应确认目标解释器归属;JAVA_HOME 示例需先安装 JDK 并确保 javac 可由 PATH 找到,Java 版本应匹配实际 Hadoop/Spark 版本。hadoop version 仅验证命令可执行,conda 环境导出及 --no-builds 不保证跨平台完整复现。example.com 地址及 some_package、custom_package 等为演示占位,需替换为实际资源或依赖;源码编译流程仅适用于提供相应 configure/make 接口的项目。本次仅作结构审阅,未外部核验下载链接、软件源或版本可用性。

包管理与软件安装 - yum/apt/pip/conda 详解

abstract 本文概要

  • yum(CentOS)和 apt(Ubuntu)系统包管理
  • pip 管理 Python 包
  • conda 管理 Python 环境(数据工程师的标配)
  • 常用数据工具的安装方法

系统包管理器

yum - CentOS/Red Hat 的包管理器

# 安装软件包
sudo yum install -y vim
sudo yum install -y python3
sudo yum install -y git wget curl

# -y 参数:所有提问自动回答 yes,适合脚本中使用

# 安装多个包
sudo yum install -y vim git wget curl telnet

# 更新指定软件
sudo yum update vim

# 更新所有软件(谨慎在生产环境执行)
sudo yum update -y

# 删除软件
sudo yum remove vim

# 搜索软件包(不知道包名时用)
yum search python3
yum search mysql

# 查看软件包信息
yum info python3

# 列出已安装的包
yum list installed
yum list installed | grep python

# 查看某个命令属于哪个包
yum provides "*/netstat"

# 清除缓存(包管理器有问题时用)
sudo yum clean all

添加第三方源:

# 安装 EPEL(Extra Packages for Enterprise Linux)
# 很多常用工具在默认源里没有,需要 EPEL
sudo yum install -y epel-release

# 安装后,就能安装更多工具了
sudo yum install -y htop
sudo yum install -y iftop
sudo yum install -y jq      # 处理 JSON 的命令行工具

apt - Ubuntu/Debian 的包管理器

# 更新软件包列表(安装前先更新,否则可能找不到包)
sudo apt update

# 安装软件
sudo apt install -y vim
sudo apt install -y python3 python3-pip

# 安装多个包
sudo apt install -y vim git wget curl jq htop

# 更新已安装的所有软件
sudo apt upgrade -y

# 删除软件
sudo apt remove vim

# 完全删除(包括配置文件)
sudo apt purge vim

# 搜索软件包
apt search python3
apt-cache search mysql

# 查看软件包信息
apt show python3

# 列出已安装的包
apt list --installed
apt list --installed | grep python

# 清理无用的依赖包
sudo apt autoremove
sudo apt clean

tip 选哪个命令?

  • CentOS 7 及以前用 yum
  • CentOS 8 / Stream 用 dnf(yum 的后继者,用法几乎一样)
  • Ubuntu/Debian 用 apt

pip - Python 包管理

# 安装包
pip install pandas
pip install numpy scikit-learn

# 安装指定版本
pip install pandas==1.5.3
pip install "pandas>=1.5.0,<2.0.0"

# 升级包
pip install --upgrade pandas

# 卸载包
pip uninstall pandas

# 查看已安装的包
pip list
pip list | grep pandas

# 查看包详情
pip show pandas

# 从 requirements.txt 安装(项目依赖)
pip install -r requirements.txt

# 导出已安装包到 requirements.txt
pip freeze > requirements.txt

# 指定镜像源(国内网络用,下载更快)
pip install pandas -i https://pypi.tuna.tsinghua.edu.cn/simple/

# 永久设置国内镜像(只需配置一次)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/

warning pip vs pip3

系统上可能同时有多个 Python 解释器。

  • pip 对应哪个解释器取决于安装方式、PATH 和当前环境,不一定是 Python 2。
  • pip3 通常用于 Python 3,但仍需确认它对应的解释器。 推荐用目标解释器调用 pip,例如 python3 -m pip install pandas;在已激活的 conda 环境中,确认 python 指向该环境且已安装 pip 后,使用 python -m pip install pandas。

conda - Python 环境管理(数据工程师必备)

conda 不只是包管理器,更是虚拟环境管理器。它允许你创建相互隔离的 Python 环境,每个项目用不同版本的 Python 和包,互不干扰。

安装 Miniconda(推荐)

# 下载 Miniconda(比 Anaconda 小很多,按需安装包)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

# 执行安装脚本
bash Miniconda3-latest-Linux-x86_64.sh

# 按提示操作:
# - 按 Enter 查看协议
# - 输入 yes 接受协议
# - 确认安装路径(默认 ~/miniconda3)
# - 是否初始化 conda:输入 yes

# 重新加载环境(或重新登录)
source ~/.bashrc

# 验证安装
conda --version

环境管理

# 创建新环境
conda create -n etl_env python=3.9
conda create -n spark_env python=3.8
# -n 指定环境名称,python= 指定 Python 版本

# 激活环境
conda activate etl_env

# 退出环境(回到 base)
conda deactivate

# 查看所有环境
conda env list
conda info --envs

# 删除环境
conda env remove -n old_env

# 克隆环境(复制一个一样的)
conda create -n etl_env_backup --clone etl_env

# 导出环境配置
conda env export > environment.yml

# 从配置文件创建环境(团队协作用)
conda env create -f environment.yml

在 conda 环境中安装包

# 先激活环境
conda activate etl_env

# 用 conda 安装(推荐,能更好处理依赖)
conda install pandas
conda install -c conda-forge pyspark   # -c 指定频道

# conda 找不到时用 pip
pip install some_package

# 安装常用数据工程包
conda install -y pandas numpy scipy matplotlib seaborn
conda install -y scikit-learn
conda install -y jupyter notebook
conda install -y sqlalchemy pymysql

# 查看当前环境安装的包
conda list

数据工程的 conda 工作流

# 1. 创建项目环境
conda create -n project_abc python=3.9 -y

# 2. 激活环境
conda activate project_abc

# 3. 安装项目依赖
conda install -y pandas numpy pyspark
pip install custom_package

# 4. 在这个环境中工作...

# 5. 导出环境(给团队其他成员)
conda env export > environment.yml
# 或者(跨平台更好)
conda env export --no-builds > environment.yml

# 6. 另一台机器恢复环境
conda env create -f environment.yml
conda activate project_abc

tip 一个常见的 conda 使用误区

不要在 base 环境里安装项目包。base 是干净的基础环境,每个项目都应该有自己的环境。 这样的好处:项目 A 用 pandas 1.5,项目 B 用 pandas 2.0,互不影响。


常用数据工具安装

安装 Java(Hadoop/Spark 需要)

# CentOS
sudo yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

# Ubuntu
sudo apt install -y default-jdk

# 验证
java -version
javac -version

# 配置 JAVA_HOME(写入 .bashrc)
echo 'export JAVA_HOME=$(dirname "$(dirname "$(readlink -f "$(command -v javac)")")")' >> ~/.bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> ~/.bashrc
source ~/.bashrc

安装 MySQL 客户端

# CentOS
sudo yum install -y mysql

# Ubuntu
sudo apt install -y mysql-client

# 连接数据库
mysql -h 192.168.1.100 -P 3306 -u alice -p mydb

安装 Hadoop(简化版)

# 下载
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

# 解压
tar -xzf hadoop-3.3.6.tar.gz -C /opt/
ln -s /opt/hadoop-3.3.6 /opt/hadoop   # 创建软链接,方便升级

# 配置环境变量
cat >> ~/.bashrc << 'EOF'
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
EOF

source ~/.bashrc

# 验证
hadoop version

安装常用命令行工具

# jq - JSON 处理神器
# CentOS(需要 EPEL)
sudo yum install -y epel-release && sudo yum install -y jq
# Ubuntu
sudo apt install -y jq

# 用法示例
curl -s https://api.example.com/data | jq '.data[] | .name'
echo '{"name": "alice", "age": 28}' | jq '.name'

# tmux - 终端复用(已在 [[09-进程与任务管理]] 介绍)
sudo yum install -y tmux
sudo apt install -y tmux

# htop - 更好的 top
sudo yum install -y htop
sudo apt install -y htop

# tree - 树形显示目录结构
sudo yum install -y tree
sudo apt install -y tree

# lsof - 查看文件和端口占用
sudo yum install -y lsof
# lsof 用法
lsof -i :8080          # 查看占用 8080 端口的进程
lsof -u alice          # 查看 alice 用户打开的文件

编译安装(了解即可)

有些软件没有现成的安装包,需要从源码编译。数据工程师不常用,但遇到时不要慌。

# 通用步骤:
# 1. 下载源码
wget https://example.com/software-1.0.tar.gz

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

# 3. 配置
./configure --prefix=/usr/local/software  # 指定安装目录

# 4. 编译
make -j4   # -j4 用 4 个 CPU 核并行编译,加快速度

# 5. 安装
sudo make install

# 6. 配置环境变量
echo 'export PATH=$PATH:/usr/local/software/bin' >> ~/.bashrc
source ~/.bashrc

快速参考

场景 CentOS 命令 Ubuntu 命令
安装软件 yum install -y pkg apt install -y pkg
删除软件 yum remove pkg apt remove pkg
搜索软件 yum search pkg apt search pkg
更新软件 yum update pkg apt upgrade pkg
添加第三方源 yum install epel-release(启用 EPEL,需发行版支持) 先安装 software-properties-common;Ubuntu 添加兼容的 PPA 时,再执行 sudo add-apt-repository <PPA地址> 和 sudo apt update,其他源按提供方说明配置
场景 命令
创建 conda 环境 conda create -n env python=3.9
激活环境 conda activate env
安装 Python 包 pip install pkg
导出环境 conda env export > env.yml

下一步


info 前置知识


掌握检查

  • [ ] 能区分 yum(CentOS/RHEL)和 apt(Ubuntu/Debian)的使用场景,不会在错误的系统上用错命令
  • [ ] 安装 Python 包时知道用 pip install -r requirements.txt 批量安装,而不是一个个敲
  • [ ] 理解 conda 虚拟环境的价值:不同项目可以有不同版本的 Python 和依赖包,互不干扰
  • [ ] 能用 conda env export > environment.yml 导出环境,在另一台机器用 conda env create -f environment.yml 复现
  • [ ] 知道 pip 安装缓慢时如何换国内镜像源(阿里云/清华源)

实践练习

基础题:在当前服务器上确认操作系统发行版(cat /etc/os-release),选择正确的包管理器,安装 htop 和 tree 两个工具,安装完成后运行验证是否可用。

进阶题:用 conda 创建一个名为 data_proj 的 Python 3.10 环境,在其中安装 pandas、sqlalchemy、psycopg2-binary,然后导出 environment.yml,并写出在新机器上基于该文件完整复现环境的命令序列。


下一步

#Linux #包管理 #conda #pip #yum #apt #数据工程