我的操作系统是 Debian 9.1 和 Cinnamon 3.2.7。我从包管理器安装了 Audacious(版本 3.7.2),并想要更新到最新版本。每这些说明,我尝试通过输入以下命令进行更新:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install audacious
提示按 Enter 后,我收到以下输出:
gpg: keybox '/tmp/tmpseyl6p36/pubring.gpg' created
gpg: /tmp/tmpseyl6p36/trustdb.gpg: trustdb created
gpg: key 531EE72F4C9D234C: public key "Launchpad webupd8" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg: imported: 1
gpg: no valid OpenPGP data found.
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python3.5/threading.py", line 914, in _bootstrap_inner
self.run()
File "/usr/lib/python3.5/threading.py", line 862, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 688, in addkey_func
func(**kwargs)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 386, in add_key
return apsk.add_ppa_signing_key()
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 273, in add_ppa_signing_key
cleanup(tmp_keyring_dir)
File "/usr/lib/python3/dist-packages/softwareproperties/ppa.py", line 234, in cleanup
shutil.rmtree(tmp_keyring_dir)
File "/usr/lib/python3.5/shutil.py", line 480, in rmtree
_rmtree_safe_fd(fd, path, onerror)
File "/usr/lib/python3.5/shutil.py", line 438, in _rmtree_safe_fd
onerror(os.unlink, fullname, sys.exc_info())
File "/usr/lib/python3.5/shutil.py", line 436, in _rmtree_safe_fd
os.unlink(name, dir_fd=topfd)
FileNotFoundError: [Errno 2] No such file or directory: 'S.gpg-agent.browser'
然后,当我尝试运行更新步骤 ( sudo apt-get install --only-upgrade audacious
) 时,我收到更多错误:
Ign:1 http://deb.debian.org/debian stretch InRelease
Ign:2 http://www.scootersoftware.com bcompare4 InRelease
Ign:3 http://ftp.us.debian.org/debian stretch InRelease
Hit:4 http://deb.debian.org/debian stretch Release
Hit:5 http://www.scootersoftware.com bcompare4 Release
Hit:6 http://ftp.us.debian.org/debian stretch-updates InRelease
Hit:7 http://security.debian.org/debian-security stretch/updates InRelease
Hit:8 http://ftp.us.debian.org/debian stretch Release
Ign:11 http://ppa.launchpad.net/alexanderk23/ppa/ubuntu artful InRelease
Ign:13 http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu disco InRelease
Err:14 http://ppa.launchpad.net/alexanderk23/ppa/ubuntu artful Release
404 Not Found
Err:15 http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu disco Release
404 Not Found
Reading package lists... Done
E: The repository 'http://ppa.launchpad.net/alexanderk23/ppa/ubuntu artful Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu disco Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
最后,当我运行安装步骤 ( sudo apt install audacious
) 时,它表示最新版本已安装。它一定没有接受购电协议。
Reading package lists... Done
Building dependency tree
Reading state information... Done
audacious is already the newest version (3.7.2-1+b1).
0 upgraded, 0 newly installed, 0 to remove and 241 not upgraded.
在线浏览后,我输入以下命令来撤消更改:
sudo add-apt-repository --remove ppa:nilarimogard/webupd8
sudo apt update
sudo apt-key del 531EE72F4C9D234C
sudo apt update
为了正确添加 PPA,我需要运行哪些附加命令?
答案1
不要在 Debian 中使用 Ubuntu PPA。
不要制作 FrankenDebian Debian 稳定版不应与其他版本结合使用。如果您尝试安装当前 Debian 稳定版本中不可用的软件,那么为其他 Debian 版本添加存储库并不是一个好主意。这些问题可能不会立即发生,而是在您下次安装更新时发生。
事情可能会出现问题的原因是,为某个 Debian 版本打包的软件是为了与该版本的其他软件兼容而构建的。例如,在stretch系统上安装buster的软件包也可以安装更新版本的核心库,包括libc6。这会导致系统未经过测试或稳定,而是两者的混合体。
如果与 Debian Stable 一起使用,则可以创建 FrankenDebian 的存储库:
Debian 测试版本(目前为 Buster)
Debian 不稳定版本(也称为 sid)
Ubuntu、Mint 或其他衍生存储库与 Debian 不兼容!
Ubuntu PPA
来源https://wiki.debian.org/DontBreakDebian
Debian 存储库中的 Audacious 出了什么问题?https://packages.debian.org/search?keywords=audacious
答案2
这并不能回答您所说的问题,但它会为您提供 Debian 9 上 Audacious 3.10 的打包版本。以下是如何在 Debian 9 上重建当前的 Buster 软件包:
启用我们需要的 Stretch backports
echo deb http://deb.debian.org/debian stretch-backports main | sudo tee /etc/apt/sources.list.d/stretch-backports.list sudo apt update
安装一些我们需要的有用工具
sudo apt install devscripts
切换到临时目录
cd /tmp
下载源码包
dget -xu http://deb.debian.org/debian/pool/main/a/audacious/audacious_3.10-1.dsc dget -xu http://deb.debian.org/debian/pool/main/a/audacious-plugins/audacious-plugins_3.10-1.dsc
开始构建大胆的
cd audacious-3.10
使用构建依赖项构建一个元包(这将允许我们稍后进行清理)
mk-build-deps debian/control
安装它然后将其移开
sudo apt install ./audacious-build-deps_3.10-1_all.deb mv audacious-build-deps_3.10-1_all.deb ..
现在构建大胆的
dpkg-buildpackage -us -uc
安装构建 Audacious 插件所需的软件包(如果没有这些,我们就无法单独安装 Audacious)
cd .. sudo dpkg -i audacious-dev_3.10-1_amd64.deb libaudcore5_3.10-1_amd64.deb libaudgui5_3.10-1_amd64.deb libaudtag3_3.10-1_amd64.deb
构建插件的过程相同(此处需要升级
debhelper
到 Stretch 向后移植版本)cd audacious-plugins-3.10 mk-build-deps debian/control sudo apt install -t stretch-backports debhelper sudo apt install ./audacious-plugins-build-deps_3.10-1_amd64.deb mv audacious-plugins-build-deps_3.10-1_amd64.deb .. dpkg-buildpackage -us -uc
Audacious 及其插件之间的相互依赖性使构建变得复杂,这就是为什么您需要首先构建 Audacious,安装其库和开发包,然后构建插件。完成所有操作后,您可以使用生成的包安装 Audacious 本身:
cd ..
sudo dpkg -i audacious_3.10-1_amd64.deb audacious-plugins_3.10-1_amd64.deb audacious-plugins-data_3.10-1_all.deb
要清理构建期间使用的包:
sudo apt purge audacious-dev build-essential debhelper devscripts gcc gcc-6 audacious-build-deps audacious-plugins-build-deps
sudo apt --purge autoremove