Sukka's Blog

童话只美在真实却从不续写

在 Debian 上添加 PPA 并安装软件包

Sukka's Avatar 2019-01-21 笔记本

  1. 1. 安装 apt-add-repository
  2. 2. 添加 PPA 源
  3. 3. 添加密钥
  4. 4. 安装软件包
  5. 5. 编译软件包

最近一直在使用 WLinux。基于 Debian 的 WLinux 用起来感觉还是挺顺手的。但是和 Ubuntu 不一样的是,Debian 不能直接添加 PPA。不过通过一些操作,也可以在 Debian 上添加 PPA 的软件源 ,不过能不能安装和安装以后能不能跑起来就看脸了。

安装 apt-add-repository

在 WLinux 上没有 software-properties-common,所以 apt-add-repositoryadd-apt-repository 指令都是不可用的,所以先安装相关的 package:

$ sudo apt update
$ sudo apt install software-properties-common

如果你的 Debian 是来自盘古开天辟地时期的,你需要安装的是 python-software-properties

添加 PPA 源

在 Debian 上使用 apt-add-repository 和在 Ubuntu 上是一样的。以 lazygit 为例:

$ sudo add-apt-repository ppa:lazygit-team/daily

接下来查看一下 /etc/apt/sources.list.d/ 的目录结构,可以看到相关软件源已经添加进去了:

$ tree /etc/apt/sources.list.d/

/etc/apt/sources.list.d/
├── lazygit-team-ubuntu-daily-disco.list
├── lazygit-team-ubuntu-daily-disco.list.save

但是这个时候你还不能从 PPA 中安装软件包,因为 list 文件中的 codename 是 Debian 当前版本的 codename,大部分情况下 PPA 软件源中并没有对应的 Debian 的软件包,所以你应该修改 list 文件,将其中的 codename 改成你想要安装的对应的 Ubuntu 版本的 codename:

$ sudo sed -i 's/disco/bionic/g' /etc/apt/sources.list.d/lazygit-team-ubuntu-daily-disco.list

添加密钥

在 Ubuntu 上,使用 add-apt-repository 指令会自动在系统中添加对应的密钥,但是在 Debian 中不会。所以我们需要手动在系统中添加密钥。
在 PPA 软件源中的相关页面(以 lazygit 为例在 这里),找到 Technical details about this PPA,可以看到当前软件源的 entries、Signing key 和 Fingerprint:

ppa-packages-key.png

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys THE_KEY

安装软件包

经过以上步骤以后,PPA 软件源才算正式添加到 Debian 之中,这个时候就可以安装对应的软件包了:

$ sudo apt update
$ sudo apt install lazygit -y

编译软件包

你也可以利用源码在 Debian 上重新编译软件包(这也是 Debian Wiki 中推荐的办法)。首先需要确保系统中已经安装了相关工具,如果没有,执行以下指令进行安装:

sudo apt install build-essential devscripts

当然你还需要确保对应 source.list 中的 deb-src 并没有被注释掉。接下来就可以编译对应的软件包了,以 lazygit 为例:

$ mkdir -p ~/build/lazygit
$ cd ~/build/lazygit
$ sudo apt source -t bionic --build lazygit

如果你在编译时遇到了依赖问题,可以手动安装终端输出的、编译时缺乏的依赖包。
编译成功以后,就可以使用 dpkg 进行安装:

$ sudo dpkg -i *.deb

当然,几乎所有 Debian 的软件包都可以在 Ubuntu 上安装,但是少数部分情况下 Ubuntu 的包不可以在 Debian 上安装。如果你足够勇敢的话(这是 Debian Wiki 中说的),你可以试着为 Debian 打个包。不过那就是另一个故事了。

本文作者 : Sukka
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议!
本文链接 : https://blog.skk.moe/post/add-ppa-to-debian/

本文最后更新于 天前,文中所描述的信息可能已发生改变