Skip to content

Instantly share code, notes, and snippets.

@Aryangh1379
Created January 12, 2025 18:41
Show Gist options
  • Save Aryangh1379/280c98e53c0e0384c7ae527872375972 to your computer and use it in GitHub Desktop.
Save Aryangh1379/280c98e53c0e0384c7ae527872375972 to your computer and use it in GitHub Desktop.
build up aur built repository

Local AUR Built Repository

I didn't want to use aurutils and actually I didn't know how to use it either, So I made makepkg to output the built packages to my repository and wrote a script to update the sync-db whenever I build with makepk.

1 craete a directory for your local repository:

mkdir /srv/http/aur

2. set pkgdest in makepkg config

PKGDEST="/srv/http/aur"

3. rebuild the repo db everytime makepkg runs

makepkg-repo.sh:

#!/bin/bash
makepkg "$@"
repo-add /srv/http/aur/aur-built-local-repo.db.tar.gz /srv/http/aur/*.pkg.tar.zst

use this script instead of calling makepkg directly.

4. build a simple webservice

# sudo pacman -S nginx

/etc/nginx/nginx.conf

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location /pkg {
            autoindex on;
            alias   /var/cache/pacman/pkg;
            #root   /var/cache/pacman/pkg;
            #root   /media/info/Aryan/Fun/VeryFunny/;
        #    index  index.html index.htm;
        }

        location /aur {
            autoindex on;
            alias   /srv/http/aur/;
            #root   /srv/http/aur/;
        #    index  index.html index.htm;
        }
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /usr/share/nginx/html;
        }
    }
}

on client:

1. add the repo to pacman.conf

[aur-built-local-repo]  
SigLevel = Optional  
Server = http://archian/aur

2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment