有没有方法可以下载 ppa 的所有文件?

有没有方法可以下载 ppa 的所有文件?

有没有方法可以将 ppa 的所有文件从 launchpad.net 下载到本地驱动器?(为了备份废弃的项目)

我曾尝试过:

wget --recursive --no-parent https://launchpad.net/~myproject/+archive/ubuntu/ppa

但结果却不如预期。

答案1

如果您只对 .deb 包感兴趣而不关心其他内容,那么请执行以下操作:

wget --no-verbose --no-parent --recursive --wait=1 -A deb https://ppa.launchpadcontent.net/TEAM_NAME/PPA_NAME/ubuntu/pool/

要使用 镜像整个 PPA wget,请像这样运行它(yt-dlp以 PPA 为例):

 wget --no-verbose --mirror --convert-links --no-parent --wait=1 https://ppa.launchpadcontent.net/yt-dlp/stable/ubuntu/

上面的链接可以从 Launchpad 中的 PPA 页面获取,单击“有关此 PPA 的技术细节”并获取出现的第一个链接。

您现在可以在本地浏览 PPA,或者使用以下命令将其提供给其他计算机:

python3 -m http.server --directory ppa.launchpadcontent.net

导航至http://0.0.0.0:8000/在本地浏览器中应该可以工作。

在 HTTP 服务器仍在运行时,您可以将此本地存储库添加到运行兼容 Ubuntu 版本的客户端计算机并从中安装软件包:

echo "deb http://<your-ip>:8000/yt-dlp/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/90local.list
sudo apt update

如果出现类似错误NO_PUBKEY E0D04D2E936B2F90,请导入开发者密钥:

gpg --no-default-keyring --keyring=/usr/share/keyrings/yt-dlp.gpg --keyserver keyserver.ubuntu.com --recv-keys E0D04D2E936B2F90

然后更改存储库定义以在客户端计算机上使用此密钥:

echo "deb [signed-by=/usr/share/keyrings/yt-dlp.gpg] http://<your-ip>:8000/yt-dlp/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/90local.list
sudo apt update

应该没有错误。您现在可以查询包缓存以确认 apt 在您的本地存储库中看到了该包:

apt-cache madison yt-dlp

相关内容