ppa

Personal Package Archive for R-hub

Current packages

Using this repository

echo "deb https://ppa.r-pkg.org jammy main" \
    > /etc/apt/sources.list.d/rhub.list
curl -L https://raw.githubusercontent.com/r-hub/ppa/main/rhub.gpg.key |
    apt-key add -
apt-get update -y
apt-get install -y ...

Adding new packages

  1. You need an Ubuntu or Debian machine, e.g.
    docker run -ti -v `pwd`:/root/ppa ubuntu:22.04 bash
    

    and a couple of packages:

    apt-get update && apt-get install -y git dpkg-dev gpg
    
  2. Copy the DEB files into pool/main.
  3. Create Packages* files:
    dpkg-scanpackages --arch amd64 pool/ > dists/jammy/main/binary-amd64/Packages
    dpkg-scanpackages --arch arm64 pool/ > dists/jammy/main/binary-arm64/Packages
    gzip -kf dists/jammy/main/binary-amd64/Packages
    gzip -kf dists/jammy/main/binary-arm64/Packages
    
  4. Generate Release file
    (cd dists/jammy && ../../generate-release.sh > Release)
    
  5. Import private key for signing
    gpg --armor --import pgp-key.private
    
  6. Sign the Release file
    export GPG_TTY=$(tty)
    cat dists/jammy/Release |
      gpg --default-key csardi.gabor@gmail.com -abs \
      > dists/jammy/Release.gpg
    cat dists/jammy/Release |
      gpg --default-key csardi.gabor@gmail.com -abs --clearsign \
      > dists/jammy/InRelease
    
  7. Test
    echo "deb http://127.0.0.1:8000/ jammy main" \
       > /etc/apt/sources.list.d/rhub.list
    apt-get install -y python3 curl
    python3 -m http.server
    

    From another terminal:

    curl -L http://127.0.0.1:8000/rhub.gpg.key | apt-key add -
    apt-get update
    apt-get install skopeo
    skopeo --version
    

Thanks

Creating and hosting your own deb packages and apt repo by Alex Couture-Beil @ Earthly.