换源
上次我们聊了ubuntu的包管理器apt和apt的GUI封装。今天我们说说如何比较愉快的玩耍apt。
ubuntu千好万好,有一点不好——是洋鬼子出的,它的官方软件源自然也就不在中国。我国的网络环境大家都明白,这就造成直接使用ubuntu的官方源会速度死慢,甚至一些比较大的包或依赖比较重的包很容易下载失败进而安装失败。这就需要我们愉快的进行apt install之前先做一点前戏。换源。
换源这个操作咱们中国人(主要是程序员)特别熟悉,美国程序员可能都不知道这个词啥意思。npm,maven,composer,还有啥大家可以补充。总之不换源根本没法用。ubuntu以及其他linux发行版也是这样。
幸运的是,ubuntu桌面版换源很容易,你甚至不需要去操作命令行或手动编辑配置文件。如果你是一个刚刚开始认识ubuntu的新手,看到我这篇文章就有福了。因为你用“ubuntu换源”作为关键词去百度搜索,会得到千篇一律的让你手动编辑源列表文件的骚操作。
记住我的话:那都是放屁
无数新手的新系统就是被这么玩坏的。
实则你仅需要找到这个图标
点开这个,选个你认识的域名就行了,阿里云,163,搜狐,华为,腾讯都在里面。没错,国内业界大佬全都提供免费的ubuntu软件源镜像。选个你觉得快的就行了。
这样就设置完了。改个毛线的配置文件。。。。如果你实在想看看源配置文件什么样,可以进/etc/apt/目录,各种源列表全在这里面。如果你没有把握,我劝你只是看看就好,别往里面手动加减任何东西。
deb
咱们要知其所以然。deb是什么?简单说就是一系列linux发行版的msi。注意,不是setup.exe。这一系列包括但不限于debian,ubuntu,mint,deepin,kali。。。。
debian是这些五花八门发行版的总爹,这些用deb的发行版被称为debian系,是规模最大的山头,没错,比redhat系更庞大。所以它们的包扩展名就都是deb。至于debian是啥?为啥叫debian,debian系有哪些成员,这作为课后作业,可以自己去搜索下。学着用linux,成为一个合格的linuxer,这些掌故都是必不可少的。
言归正传。我们已经知道apt是ubuntu的包管理器,管理的就是这些deb为后缀的包。而apt的更底层还有个dpkg:Debian Packager。多么朴素。debian的包er。dpkg我们不多讲,你们可以在各种乱七八糟的文章中看到dpkg的身影。其实我们一般只用得到dpkg的一个用法
# 安装一个下载到本地的软件包
sudo dpkg -i package_name.deb
就连这条命令我们其实也只不过是习惯上这么用,完全可以用apt代替
sudo apt install ./package_name.deb
区别就是apt安装本地包必须带着路径。"./"表示当前目录。而且用apt安装本地包的好处是,就跟安装源里的包一样,会自动解决依赖。dpkg不能。
虽说可以这么干,但最好还是从软件源安装软件。源里有的就从源里装。
ppa
书接上文,如果源里没有呢?如果源里的版本实在太旧呢?
不同发行版解决这类问题的策略不同。知乎最爱的arch/manjaro的解决方案是AUR,完全农村大集化的社区源
AUR (en) - Homeaur.archlinux.org我现在对这玩意有点讨厌。我不觉得这是个好的策略。可以参见我的另一篇文章就明白我这么说的(部分)原因。
sinux:机智的解决arch/manjaro安装AUR软件时github下载软件包慢或不可获得的问题zhuanlan.zhihu.com相应的,ubuntu作为一个更正统的,有商用野心的发行版,它的策略是
ppa:Personal Package Archives
ppa托管在http://launchpad.net这个网站
Launchpadlaunchpad.netlaunchpad上的ppa远比aur严肃。至少你得自己真的编译打包好一个软件才能发布在launchpad上面。每一个ppa都是一组软件集合,可能自带依赖,可以比较好的解决不同版本新旧依赖不同的问题。
我们怎么用呢?去launchpad网站搜索你想要的包名就可以了。搜索结果可能比较杂乱,因为launchpad不单纯是ppa的托管,还有项目管理,代码托管等等功能。总之你可以通过搜索找对位置。形如
qbittorrent-stable : “qBittorrent Team” teamlaunchpad.net这样的就对了。
添加ppa源的方法很简单。例如上图的
sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable
sudo apt-get update ##这一行其实不必。最近版本的ubuntu上执行上一条命令后会自动执行这一条
add-apt-repository,看这命令的名字我们就知道了,其实是新增了一行apt的源,就在上文我说的不要乱动的那个目录里。之所以不要手动维护源列表,一方面原因就是,使用合规命令的时候会给你自动添加密钥,保证源不被篡改。
添加了qbittorrent这条源之后,就可以用apt管理了,跟ubuntu官方源里面的软件一样,可以方便的安装升级卸载。
snap
如果官方源没有,ppa也没找到,软件官网只提供源代码,又该怎么办?
还有snap,flatpak,appimage,nix等等补充方案。
这里只说snap。其他的请自行搜索关键词。因为snap是ubuntu主导的一种新软件安装方案。说实话,我一点都不喜欢snap——因为下载慢,且没法换源。deb是msi,snap就真的像是ubuntu的setup.exe了。它把所有依赖全都打包进去,所以安装包会超乎寻常的大,动不动上百兆。
Install Linux apps using the Snap Store | Snapcraft snapcraft.io没什么可介绍的,就是这么枯燥。
实在没辙了,只能找到源代码了,再考虑自己编译。
新手们,谁一上来就让你编译安装各种软件,你就扇他。哪篇文章上来就是编译,你就别看。
如果实在需要编译安装某个软件,参考我这篇文章。
sinux:以oommf为例,写写linux上编译软件的一般性方法zhuanlan.zhihu.com下回说说ubuntu使用上的一些误区,或者说linux使用上的一些误区。我总觉得咱们中国的linux用户有一些集体性的很奇怪的习惯,值得批判和纠正。