各位有三言选的读者朋友们大家好,今天想给各位读者朋友介绍 Arch Linux 之中的一个相当好用的软件包管理器:pacman
作者 & 编辑 | 单胖scj & Leong
我相信熟悉有三 AI 的朋友们都非常清楚,有三老师发布的很多跟开发习惯有关系的文章都能出现这么个关键词 ——Linux,他也在 AI 工程师修行之路的白身境中详细说过使用 Linux 作为开发环境的优势,即效率高。笔者入坑 Linux 也就是因为阅读了那两篇文章,最后果断装了 Ubuntu。而一个机缘巧合的机会,我接触到了 Arch Linux 的一个衍生版 ——Manjaro Linux,而使我抛弃 Ubuntu 而转投 Manjaro 的原因,就是 Arch 的软件包管理器 ——pacman。
【好专栏】如何从零基础开始一步步学习计算机视觉(附文档下载!)
附上 Arch wiki 中对于 pacman 的描述:
https://wiki.archlinux.org/index.php/Pacman
可能很多读者朋友会问,为啥这一个小小的软件包管理器就能让你抛弃 Ubuntu 呢,Debian 系 Linux 的稳定性不是口碑一直很好的嘛?莫要着急,且听我慢慢道来。
我们不妨先来缕缕在 Ubuntu 下进行 TensorFlow 的深度学习环境及 GPU 环境配置的流程:
1. Ubuntu 下 tf 的环境配置
(1) 配置显卡驱动
驱动的下载还算好办,不管是敲命令行用 apt 下载还是通过 NVIDIA 的官网手动下载都不是什么难事,但它的安装不光麻烦,还有各种坑,比如双显卡进不去桌面,虽然有解决方案,但如果是作为一个刚刚入坑的小白,遇到了总是会让人觉得心头一颤 ——“这电脑怕不是坏了吧 “。
(2) 安装 CUDA,cuDNN
这个嘛也还算好办,需要去 NVIDIA 的官网下载 CUDA 和 cuDNN 的.deb 或者.run 包,然后把官网给的几个命令复制粘贴到命令行中就可以安装了,也没有啥坑。
(3) 安装 TensorFlow
这个咱学 Python 的肯定都会,直接 pip 完事,就是 pip 之前可能需要先配置一下 pip 的国内源,即在 pip.conf 里面加几句话就 OK 了。
以上即为 Ubuntu 下的 TensorFlow 的安装配置过程,整个过程相比 Windows 应该相对来说容易了很多,毕竟复制粘贴几个命令到命令行之中总比一个一个去点来配置环境变量要来的高效。
Arch Linux 下配置 tf 环境
那么在 Manjaro 下使用 pacman 完成上述过程是怎么个操作呢?
sudo pacman -S python-tensorflow-opt-cuda
结束了。
就这?是不是不敢相信?有图有真相:
对不起,pacman 就是这么强大,一条命令,直接配好所有东西,这才是真正的生产力工具。
Ubuntu 下的 apt 源以笔者之薄见,真的感觉太老了。大家在用 Ubuntu 做开发的时候,一定体验过往 apt 中添加 ppa 源的经历。笔者记得在安装 neovim 的时候,直接敲 sudo apt-get install neovim,装的居然是 0.1.1 版本的 neovim,笔者百度了一下,添加了一个 ppa 源,忍着 5kb 每秒的速度等它下载完成,顺手看了下版本号是 0.3.8,认为这肯定就是最新版了嘛,结果还是在几天后笔者转了 Manjaro 用 pacman 安装 neovim 才发现,原来最新版都到 0.4.3 了。
By the way,可能有的朋友会问,那如果我喜欢用 PyTorch,我也可以这样一键安装嘛?
当然可以,直接给出命令:
sudo pacman -S python-pytorch-opt-cuda
可能有的朋友又要问了,我现在就想用 caffe,你也能用 pacman 一键安装嘛?
这个还真不行,使用 pacman 来安装 caffe 会发现里面没有这个包,但是莫慌,Arch 有一个相当强大的用户社区的软件库,名曰 AUR,即 Archlinux User-community Repository,社区内的用户可以在此上传软件包并分享给整个社区的用户使用(GitHub 即视感)。
此处附上 AUR 的 Wiki,官方文档是个好东西:
https://wiki.manjaro.org/index.php?title=AUR
那咱们要如何才能从 AUR 中下载 caffe 呢?命令如下:
sudo pacman -S yaourt
yaourt -S caffe-cuda
也顺便一提,如果 yaourt 没有帮咱们下载成功,可以试试 yay,这个命令也是从 AUR 上下载软件:
yay --aururl "https://aur.tuna.tsinghua.edu.cn" --save
sudo pacman -S yay
yay -S caffe-cuda
倘若还是无法正常下载,那就请各位读者朋友去有三 AI 的 GitHub 上去下载有三老师开源的 caffe。毕竟 caffe 这样的以 C++ 为底层代码的框架,编译这一步还是需要咱们自己去做的。具体怎么做,也请各位朋友查看有三 AI 往期的文章。
pacman 的其他常用指令
说完这些,我相信能够提起各位苦于配环境的朋友们的兴趣,那么接下来,我会再粗略解读几个常用的 pacman 命令。
咱们分个类,咱们常用的软件包的管理无非这么几类,第一类是安装和更新,第二类是查询本地安装的软件包,第三类是删除软件包。
(1) 先看第一类,这一类都以 - S 指令起手:
sudo pacman -S package-name # 下载 package
sudo pacman -Ss package-name # 在源内搜索
sudo pacman -Sy # 获取最新软件的源的情况,但不更新
sudo pacman -Syy # 强行刷新所有软件源,但不更新
sudo pacman -Syyu # 强行刷新所有软件源再更新
sudo pacman -Sc # 删除 pacman 缓存
(2) 再看第二类,这类都以 - Q 指令起手
sudo pacman -Q # 展示所有软件包
sudo pacman -Qe # 展示自己装的软件
sudo pacman -Qeq # 只显示自己装的软件的名称,不显示别的信息
sudo pacman -Qs package-name # 搜索本地的软件
(3) 最后说下第三类,这类以 - R 指令起手
sudo pacman -R package-name # 删除软件
sudo pacman -Rs package-name # 删除软件和依赖
sudo pacman -Rns package-name # 删除软件、依赖和全局配置文件
以上咱们日常使用 pacman 时一些常用的指令,大家在使用时应当注意将这些指令活学活用,基本上能够满足日常使用了,如果还想进一步学习的话,各位读者朋友可以去 Arch Wiki 继续进行更深层次的学习。
pacman 有缺陷吗?
前面说了那么多 pacman 的各种各样好处,那么它到底有没有缺陷呢?
这在笔者平日里的正常开发过程之中没有明显的体现,因为如果单说 pacman 有啥缺点,这个还真没有什么很明显的缺陷摆在那。硬说有何缺陷,把范围放的稍微大些,Arch Linux 是一个滚动更新的系统,可能有的时候咱们在更新软件包的时候,会破坏某些依赖,导致电脑不能用(即所谓的” 滚挂 “),但大部分情况下是可以修复的。
今天给各位简单介绍了作为深度学习的开发者,pacman 究竟能给我们带来多少的便利,相信大家能够感受到它的魅力。
欢迎扫码加入有三言选知识星球,共享好资源
转载文章请后台联系
侵权必究