You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Debian下载已安装软件包源码的脚本执行失败求助

解决Debian 9.3 LXDE下载已安装软件包源码的错误问题

嘿,我来帮你搞定这个Debian 9.3 LXDE里下载源码包的问题,你碰到的几个错误其实是连锁反应,咱们一步步来拆解解决:

首先先把你遇到的错误列出来,方便对应排查:

sh: 1: dpkg-source: not found
W: Download is performed unsandboxed as root as file 'libreoffice_5.2.7-1.dsc' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
E: Unpack command 'dpkg-source --no-check -x libreoffice_5.2.7-1.dsc' failed.

1. 先搞定最核心的dpkg-source: not found错误

这个错误是因为你的系统里缺少dpkg-dev包——它包含了解压源码包必须的dpkg-source工具。直接运行下面的命令安装就行:

sudo apt update && sudo apt install dpkg-dev

2. 处理权限警告(Download is performed unsandboxed as root)

这个警告是因为你用root身份直接执行下载操作,导致系统的_apt用户没法访问下载的文件。这里给你两个实用建议:

  • 尽量不要用root直接运行源码下载命令,改用普通用户加sudo执行;
  • 如果是脚本执行,提前创建一个普通用户有权限的下载目录,比如:
mkdir -p ~/my-source-packages
sudo chown -R $USER:$USER ~/my-source-packages

然后让脚本把源码下载到这个目录里,就能避免权限问题。

3. 重新执行源码下载(推荐用Debian原生命令)

第三方脚本可能没考虑Debian和Ubuntu的细节差异,不如直接用Debian原生的命令更靠谱:

  • 下载单个已安装包的源码:
apt source <你的软件包名称>
  • 批量下载所有已安装包的源码,可以用这个命令(前提是已经装了dpkg-dev):
dpkg --get-selections | grep -v deinstall | awk '{print $1}' | xargs -I {} apt source {}

额外提醒:确保源码仓库已开启

执行apt source前,记得检查/etc/apt/sources.list里有没有deb-src开头的行——这是源码仓库的配置。如果没有,就添加对应的源码源,比如Debian 9(stretch)的官方源码源:

sudo sh -c 'echo "deb-src http://deb.debian.org/debian stretch main contrib non-free" >> /etc/apt/sources.list'
sudo apt update

内容的提问来源于stack exchange,提问作者koleygr

火山引擎 最新活动