All Projects → eagletmt → guzuta

eagletmt / guzuta

Licence: MIT license
Custom repository manager for ArchLinux pacman

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to guzuta

Pacwall
A live wallpaper that shows the dependency graph and status of installed packages.
Stars: ✭ 412 (+1425.93%)
Mutual labels:  archlinux, pacman
Pacaur
[unmaintained] An AUR helper that minimizes user interaction
Stars: ✭ 818 (+2929.63%)
Mutual labels:  archlinux, pacman
Aurutils
Helper tools for the AUR.
Stars: ✭ 695 (+2474.07%)
Mutual labels:  archlinux, pacman
pacman.store
Pacman Mirror via IPFS for ArchLinux, Endeavouros and Manjaro
Stars: ✭ 65 (+140.74%)
Mutual labels:  archlinux, pacman
ArchI0
ArchI0 : Arch-Based Distros Applications Automatic Installation Script
Stars: ✭ 26 (-3.7%)
Mutual labels:  archlinux, pacman
paruz
A fzf terminal UI for paru or pacman
Stars: ✭ 29 (+7.41%)
Mutual labels:  archlinux, pacman
Yay
Yet another Yogurt - An AUR Helper written in Go
Stars: ✭ 7,100 (+26196.3%)
Mutual labels:  archlinux, pacman
alpm.rs
Rust bindings for libalpm
Stars: ✭ 76 (+181.48%)
Mutual labels:  archlinux, pacman
Cylon
A CLI TUI menu driven bash shell script supporting updates, maintenance, backups and system checks for an Arch based Linux distro
Stars: ✭ 121 (+348.15%)
Mutual labels:  archlinux, pacman
Paru
Feature packed AUR helper
Stars: ✭ 1,240 (+4492.59%)
Mutual labels:  archlinux, pacman
pacman-for-termux
Special configured pacman for termux.
Stars: ✭ 24 (-11.11%)
Mutual labels:  archlinux, pacman
Ansible Aur
Ansible module to manage packages from the AUR
Stars: ✭ 149 (+451.85%)
Mutual labels:  archlinux, pacman
pyalpm
Python 3 bindings for libalpm (read-only mirror)
Stars: ✭ 50 (+85.19%)
Mutual labels:  archlinux, pacman
Octopi
A powerful Pacman (Package Manager) front end using Qt libs
Stars: ✭ 331 (+1125.93%)
Mutual labels:  archlinux, pacman
pkgstats-cli
pkgstats client
Stars: ✭ 17 (-37.04%)
Mutual labels:  archlinux, pacman
Trizen
Lightweight AUR Package Manager
Stars: ✭ 696 (+2477.78%)
Mutual labels:  archlinux, pacman
paclabel
A tiny pacman wrapper that makes possible to attach labels to packages.
Stars: ✭ 16 (-40.74%)
Mutual labels:  archlinux, pacman
milcheck
Display the status of your pacman mirrorlist and the Arch Linux lastest news right in your terminal
Stars: ✭ 18 (-33.33%)
Mutual labels:  archlinux, pacman
Cpcache
central pacman cache
Stars: ✭ 15 (-44.44%)
Mutual labels:  archlinux, pacman
Pacback
Advanced Version Control for Arch Linux
Stars: ✭ 146 (+440.74%)
Mutual labels:  archlinux, pacman

guzuta

Custom repository manager for ArchLinux pacman

Usage

Build a package and store it to a repository

Basic usage: build foo x86_64 package for bar repository.

% ls foo
PKGBUILD
% mkdir -p repo/x86_64
% guzuta build foo --repo-dir repo/x86_64 --repo-name bar --arch x86_64
(snip)
% ls repo/x86_64
bar.db  bar.files  foo-1.0.0-1-x86_64.pkg.tar.xz

With full options:

% guzuta build --chroot-dir /var/cache/guzuta/chroot-x86_64 --repo-dir repo/x86_64 --repo-name bar --arch x86_64 --package-key $GPGKEY --repo-key $GPGKEY --srcdest sources --logdest logs foo
(snip)
% ls repo/x86_64
bar.db  bar.db.sig  bar.files  bar.files.sig  foo-1.0.0-1-x86_64.pkg.tar.xz  foo-1.0.0-1-x86_64.pkg.tar.xz.sig
% ls sources
foo-1.0.0.tar.gz
% ls logs
foo-1.0.0-1-x86_64-build.log  foo-1.0.0-1-x86_64-package.log

Omakase mode

Omakase mode supports a typical situation managing the custom repository.

Initialize a repository

See also https://wiki.archlinux.org/index.php/DeveloperWiki:Building_in_a_Clean_Chroot#Classic_Way

% sudo mkarchroot -C /path/to/pacman.conf -M /path/to/makepkg.conf /path/to/chroot-x86_64/root base base-devel
% cat > .guzuta.yml
name: foo
package_key: C48DBD97
repo_key: C48DBD97
srcdest: sources
logdest: logs
pkgbuild: PKGBUILDs
builds:
  x86_64:
    chroot: /path/to/chroot-x86_64
% mkdir foo sources logs PKGBUILDs

Build a package

Write a PKGBUILD in PKGBUILDs/#{pkgname} directory.

% mkdir PKGBUILDs/bar
% vim PKGBUILDs/bar/PKGBUILD

Then build the package.

% guzuta omakase build bar
(snip)
% tree foo
foo
`-- os
    `-- x86_64
        |-- bar-1.0.0-1-x86_64.pkg.tar.xz
        |-- bar-1.0.0-1-x86_64.pkg.tar.xz.sig
        |-- foo.db
        |-- foo.db.sig
        `-- foo.files

Publish the repository

For the server, serve files under the foo directory by HTTP server like nginx or Apache.

For clients, add the server's repository configuration to /etc/pacman.conf like below.

[foo]
SigLevel = Required
Server = http://example.com/$repo/os/$arch

Publish the repository (Amazon S3)

Configure .guzuta.yml for S3.

s3:
  bucket: foo-packages
  region: ap-northeast-1

Each time you execute guzuta omakase build:

  1. Download repository databases (not including packages)
  2. Build a package
  3. Upload the built package and repository databases.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].