Setting up your own package repository is probably the easiest in Arch Linux compared to other Linux Distros. I’m going to jot down what I did for the Unity For Arch Linux Repository that I created. This is a generic set of instructions and will have to adapted for different environments.

  • Create all the packages that you want to host in the repository (*.pkg.tar.xz files). Lets assume that all the compiled pacakages are in the directory BUILD-DIR.
  • Create a directory structure for your packages.
    mkdir ~/repo-dir
    mkdir ~/repo-dir/x86_64
    mkdir ~/repo-dir/i686
  • Copy the *.pkg.tar.xz files in to appropriate directories.
    find BUILD-DIR -name *x86_64.pkg.tar.xz -exec cp '{}' ~/repo-dir/x86_64/ \;
    find BUILD-DIR -name *i686.pkg.tar.xz -exec cp '{}' ~/repo-dir/i686/ \;
    find BUILD-DIR -name *any.pkg.tar.xz -exec cp '{}' ~/repo-dir/x86_64/ \;
    find BUILD-DIR -name *any.pkg.tar.xz -exec cp '{}' ~/repo-dir/i686/ \;
  • Create the package database. Replace repo-name with whatever name you want
    pushd ~/repo-dir/x86_64/
    repo-add ./repo-name.db.tar.gz ./*.pkg.tar.xz
    pushd ~/repo-dir/i686/
    repo-add ./repo-name.db.tar.gz ./*.pkg.tar.xz
  • Tar up the packages.
    pushd ~/repo-dir/
    tar -cvzf ../packages.tar.gz .
  • Create a Domain/Sub-domain to host the packages. Lets say the domain is
  • Copy packages to your server and untar it inside the public folder of your domain/sub-domain
    scp packages.tar.gz
    cd ~/
    tar -zxvf ../packages.tar.gz
  • Add the respository to pacman.conf. Change repo-name to whatever you used earlier.
  • [repo-name]
    Server =$arch
  • We are done now, synchronize the package repository and install your packages and distribute it to others.
    sudo pacman -Syu
    sudo pacman -S <package name>
1 comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You May Also Like