Score:1

Is there a method to download all files of a ppa?

tr flag

Is there a method to download all files of a ppa from launchpad.net to the local drive?. (To make a backup of an abandoned project)

I have tried it with:

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

But the result has not been as expected.

sudodus avatar
jp flag
Maybe ask for help at directly at Launchpad.
ru flag
It's not as simple as a recursive wget to get "all data" because this is a reprepro style repository system. What *exactly* do you want to fetch from the PPA? I don't think you are expecting to do a full mirror, so a `wget` mechanism might not be what you need.
acgbox avatar
tr flag
That is precisely the reason for my question. What method should I use to download the files to backup the repo?. So, I don't understand why you give me a negative point for my question. is legit
Score:2
in flag

If you're only interested in the .deb packages and nothing else, then do this:

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

To mirror an entire PPA with wget, run it like this (yt-dlp PPA used as an example):

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

The link above can be obtained from the PPA page in Launchpad, click "Technical details about this PPA" and get the first link that appears.

You can now browse the PPA locally, or make it available to other computers with:

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

Navigating to http://0.0.0.0:8000/ in a local browser should work.

With the HTTP server still running, you can add this local repo to a client computer running a compatible Ubuntu release and install packages from it:

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

If you get an error like NO_PUBKEY E0D04D2E936B2F90, import the developer's key:

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

Then change the repository definition to use this key on the client machine:

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

There should be no errors. You can now query the package cache to confirm that apt sees the package in your local repository:

apt-cache madison yt-dlp
I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.