在 Debian 12 上安装 Anaconda 完整指南
原文:https://dev.to/vultr/installing-anaconda-on-debian-12-27dc(作者 @sharmukh)
Anaconda 是一个为数据科学、机器学习和科学计算构建的 Python 和 R 开源发行版。它捆绑了 Conda 这一包管理与环境管理工具,以及大量用于处理大规模数据和运行高级计算的科学库,使其成为在服务器上构建机器学习模型和运行复杂工作负载的可靠平台。本指南将详细介绍如何在 Debian 12 上安装 Anaconda,为其设置多用户环境,管理 Conda 环境,并在其中运行 Jupyter Notebook。完成后,你将拥有一个功能完备的 Anaconda 安装实例,以及为数据科学项目准备好的隔离 Conda 环境。
在 Debian 12 上安装 Anaconda
Anaconda 未包含在 Debian 12 的默认软件包仓库中,因此你需要直接下载安装脚本。
1. 安装 Anaconda 所需的依赖包:
$ sudo apt-get install libgl1-mesa-glx libegl1-mesa libxrandr2 libxrandr2 libxss1 libxcursor1 libxcomposite1 libasound2 libxi6 libxtst6 -y
2. 下载最新的 Anaconda 安装脚本: 访问 Anaconda 仓库,找到最新的 Linux 安装脚本,例如 Anaconda3-2024.10-1-Linux-x86_64.sh。
$ wget -O anaconda.sh https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
3. 测试下载的安装脚本的完整性:
$ shasum -a 256 anaconda.sh
验证生成的哈希值是否与 Anaconda 仓库中列出的安装脚本 SHA256 值匹配,类似如下:
3ba0a298155c32fbfd80cbc238298560bf69a2df511783054adfc151b76d80d8
4. 使用 Bash 运行脚本以安装 Anaconda:
$ bash anaconda.sh
* 当提示时按回车键开始安装并查看许可协议:
`
Welcome to Anaconda3 2024.10-1
In order to continue the installation process, please review the license
agreement.
Please, press ENTER to continue
>>>
`
* 按空格键翻阅服务条款,然后按 q 关闭阅读器。
* 当提示接受许可条款时,输入 yes 并按回车键,将 Anaconda 安装到用户主目录的默认位置:
`
Do you accept the license terms? [yes|no]
>>> yes
Anaconda3 will now be installed into this location:
/home/linuxuser/anaconda3
- Press ENTER to confirm the location
- Press CTRL-C to abort the installation
- Or specify a different location below
[/home/linuxuser/anaconda3] >>>
`
* 当提示是否更新 shell 配置文件以在每次会话时自动初始化 Conda 时,输入 yes 并按回车键:
`
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
run the following command when conda is activated:
conda config --set auto_activate_base false
You can undo this by running conda init --reverse $SHELL? [yes|no]
[no] >>> yes
`
安装完成后,你的输出应类似于以下内容:
`
.....................
modified /home/linuxuser/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
Thank you for installing Anaconda3!
`
5. 重新加载 shell 配置以应用更改:
$ source ~/.bashrc
验证你的 shell 提示符是否已更改为默认的 base Conda 环境:
(base) linuxuser@debian~$
6. 查看已安装的 Conda 版本:
$ conda --version
输出:
conda 24.9.2
7. 查看有关活动 Conda 环境、Python 版本和渠道的信息:
$ conda info
你的输出应类似于以下内容:
active environment : base
active env location : /home/linuxuser/anaconda3
shell level : 1
user config file : /home/linuxuser/.condarc
populated config files : /home/linuxuser/anaconda3/.condarc
conda version : 24.9.2
conda-build version : 24.9.0
python version : 3.12.7.final.0
base environment : /home/linuxuser/anaconda3 (writable)
conda av data dir : /home/linuxuser/anaconda3/etc/conda
channel URLs : https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /home/linuxuser/anaconda3/pkgs
/home/linuxuser/.conda/pkgs
envs directories : /home/linuxuser/anaconda3/envs
/home/linuxuser/.conda/envs
platform : linux-64
为多用户安装 Anaconda
Anaconda 默认安装在当前活动用户的主目录下,并包含一个 base 环境。为了让多个用户能使用 Anaconda 并管理 Conda 环境,你需要创建一个专用的 anaconda 用户组,并授予其对 Anaconda 安装目录的所有权。
1. 切换到你的主目录:
$ cd
2. 创建一个新的 `anaconda` 用户组:
$ sudo groupadd anaconda
3. 授予 `anaconda` 用户组对 Anaconda 安装目录的所有权:
$ sudo chgrp -R anaconda /home/linuxuser/anaconda3/
4. 授予所有者和 `anaconda` 用户组对 Anaconda 安装目录的完全权限:
$ sudo chmod 770 -R /home/linuxuser/anaconda3/
5. 将你的当前用户添加到 `anaconda` 组(将 `linuxuser` 替换为你的实际用户名):
$ sudo usermod -a -G anaconda linuxuser
6. 创建一个新用户,例如 `exampleuser`:
$ sudo adduser exampleuser
7. 将新用户添加到 `anaconda` 用户组:
$ sudo usermod -a -G anaconda exampleuser
8. 切换到新用户,系统提示输入密码时输入该用户的密码以登录:
$ su - exampleuser
9. 在用户的会话中激活 `base` Conda 环境:
$ source /home/linuxuser/anaconda3/bin/activate
10. 在用户环境中初始化 Conda:
$ conda init
你的输出应与下面类似:
no change /home/linuxuser/anaconda3/shell/condabin/Conda.psm1 no change /home/linuxuser/anaconda3/shell/condabin/conda-hook.ps1 no change /home/linuxuser/anaconda3/lib/python3.12/site-packages/xontrib/conda.xsh no change /home/linuxuser/anaconda3/etc/profile.d/conda.csh modified /home/exampleuser/.bashrc
11. 重新加载用户的 shell 配置以应用更改:
$ source ~/.bashrc
验证你的 shell 提示符已更改为默认的 base Conda 环境:
(base) exampleuser@debian~$
12. 查看已安装的 Conda 版本,以确保该用户可以管理 Conda 环境:
$ conda --version
输出:
conda 24.9.2
13. 按下 Ctrl+D 切换回你之前的用户会话。
管理 Conda 环境
Conda 环境会隔离特定项目的资源,包括包、版本和依赖项。同一时间只能激活一个 Conda 环境,激活另一个环境会自动停用当前活动的环境。
1. 创建一个新的名为 `myenv` 的 Conda 环境:
$ conda create -n myenv
系统提示创建 myenv 环境时,输入 y 并按回车:
Proceed ([y]/n)? y
输出:
Preparing transaction: done Verifying transaction: done Executing transaction: done # # To activate this environment, use # # $ conda activate myenv # # To deactivate an active environment, use # # $ conda deactivate
2. 激活 `myenv` 环境:
$ conda activate myenv
3. 验证你的 shell 提示符已从 `base` 更改为 `myenv` 环境:
(myenv) $
4. 在 `myenv` 环境中安装新包,例如 `numpy` 和 `pandas`:
$ conda install numpy pandas=2.0 scipy
5. 更新 Conda 环境中的包。例如,将 `pandas` 包更新到最新版本:
$ conda update pandas
6. 从活动环境中移除一个 Conda 包。例如,移除 `scipy` 包:
$ conda remove scipy
系统提示移除 scipy 包时,输入 y 并按回车:
Proceed ([y]/n)? y
7. 移除所有未使用的包,包括缓存的压缩包、索引缓存、日志文件和临时文件:
$ conda clean --all
系统提示确认移除包时,输入 y 并按回车:
Will remove 525 (1.09 GB) tarball(s). Proceed ([y]/n)? y Will remove 1 index cache(s). Proceed ([y]/n)? y Will remove 16 (165.9 MB) package(s). Proceed ([y]/n)? y There are no tempfile(s) to remove. There are no logfile(s) to remove.
如果你遇到文件权限错误,请确保当前活动用户对 Anaconda 安装目录中的 pkgs 子目录拥有完全权限。
8. 将活动的 Conda 环境导出到文件,例如 `environment.yml`:
$ conda env export > environment.yml
9. 使用导出的环境文件创建一个新的 Conda 环境,例如 `myenv-2`:
$ conda env create -f environment.yml -n myenv-2
10. 列出所有可用的 Conda 环境:
$ conda env list
你的输出应与下面类似。活动环境用星号(*)标记:
base /home/linuxuser/anaconda3 myenv * /home/linuxuser/anaconda3/envs/myenv myenv-2 /home/linuxuser/anaconda3/envs/myenv-2
在 Conda 环境中运行应用程序
Jupyter Notebook 是一个开源的交互式计算应用,使用计算笔记本并支持多种编程语言。请按照以下步骤,在激活的 myenv 环境中安装并运行 Jupyter Notebook 作为示例应用程序。
1. 安装最新的 `jupyter` 包:
$ conda install jupyter
2. 列出环境中的所有已安装包,并确认 `jupyter` 包可用:
$ conda list -n myenv
输出:
jupyter 1.0.0 py312h06a4308_9 jupyter-lsp 2.2.0 py312h06a4308_0 jupyter_client 8.6.0 py312h06a4308_0 jupyter_console 6.6.3 py312h06a4308_1 jupyter_core 5.7.2 py312h06a4308_0 jupyter_events 0.10.0 py312h06a4308_0 jupyter_server 2.14.1 py312h06a4308_0
3. 创建一个示例 Jupyter notebook `hello.ipynb`,用于输出一条问候消息:
$ echo '{
"cells":[
{
"cell_type":"code",
"execution_count":2,
"id":"5acd64e3-b2bc-41b0-8fc1-1666cb479f30",
"metadata":{
},
"outputs":[
{
"name":"stdout",
"output_type":"stream",
"text":[
]
}
],
"source":[
"msg=\"Hello from Jupyter!\"\n",
"print(msg)"
]
},
{
"cell_type":"raw",
"id":"7ed9e62d-6bc3-4116-b0e9-1b06814cc5f2",
"metadata":{
},
"source":[
]
}
],
"metadata":{
"kernelspec":{
"display_name":"Python 3 (system-wide)",
"language":"python",
"name":"python3"
},
"language_info":{
"codemirror_mode":{
"name":"ipython",
"version":3
},
"file_extension":".py",
"mimetype":"text/x-python",
"name":"python",
"nbconvert_exporter":"python",
"pygments_lexer":"ipython3",
"version":"3.10.12"
}
},
"nbformat":4,
"nbformat_minor":5
}' > hello.ipynb
4. 运行 `hello.ipynb` notebook,并将输出写入新的 `hello.nbconvert.ipynb` 文件:
$ jupyter nbconvert --to notebook --execute hello.ipynb
输出:
[NbConvertApp] Converting notebook hello.ipynb to notebook [NbConvertApp] Writing 1175 bytes to hello.nbconvert.ipynb
5. 打印 `hello.nbconvert.ipynb` 文件内容,确认问候消息显示在 `outputs` 单元格中:
$ cat hello.nbconvert.ipynb
输出:
{
"cells":[
{
...
"outputs":[
{
"name":"stdout",
"output_type":"stream",
"text":[
"Hello from Jupyter!\n"
]
}
],
"source":[
"msg=\"Hello from Jupyter!\"\n",
"print(msg)"
]
}
...
}
6. 停用 `myenv` 环境,切换回默认的 `base` 环境:
(myenv) $ conda deactivate
输出:
(base) $
后续步骤
- 为每个项目创建独立的 Conda 环境,以保持依赖隔离。
- 探索使用
conda-forge作为额外的软件包渠道,获取不常见的库。 - 设置 JupyterLab 或远程 Jupyter 内核,以便在服务器上进行交互式开发。
- 使用
environment.yml文件在项目仓库中自动化环境创建。
完整指南及更多技巧,请访问 [Vultr 文档](https://docs.vultr.com/how-to-install-anaconda-on-debian-12) 中的原始文章。
原文:https://dev.to/vultr/installing-anaconda-on-debian-12-27dc(作者 @sharmukh)