未记录事实核验 · 状态:现行内容
记录仅说明核验时间与维护状态,不保证适用于所有环境;使用前请留意正文中的版本、适用条件与风险提示。
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 |
下一步
- 02-远程连接与环境配置 - 回顾环境变量配置
- 14-实战场景 - 完整的服务器环境搭建案例
掌握检查
- [ ] 能区分
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 #数据工程