download static pacman
https://pkgbuild.com/~morganamilo/pacman-static/x86_64/bin/
https://archlinux32.andreasbaumann.cc/archlinuxaba/pacman-static/
https://aur.archlinux.org/packages/pacman-static
https://pkgs.org/download/pacman-static
https://mirrors.tuna.tsinghua.edu.cn/arch4edu/x86_64/pacman-static-6.0.2-3-x86_64.pkg.tar.zst
sudo apt install zstd xz-utils
tar xf pacman-static-6.0.2-3-x86_64.pkg.tar.zst
generate mirrorlist
https://archlinux.org/mirrorlist/
https://archlinux.org/mirrorlist/?country=CN&protocol=http&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on
https://archlinux.org/mirrorlist/?country=IN&protocol=http&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on
LTO mirrorlist
https://somegit.dev/ALHP/alhp-mirrorlist/src/branch/master/mirrorlist
pacman config
https://github.com/archlinux/svntogit-packages/blob/packages/pacman/trunk/pacman.conf
https://raw.githubusercontent.com/archlinux/svntogit-packages/packages/pacman/trunk/pacman.conf
nano pacman.conf
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Never
LocalFileSigLevel = Optional
[core]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[extra]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[community]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
sudo mkdir -p /mnt/var/lib/pacman/
# ./pacman-static --config pacman.conf --root=/mnt -Syu
https://archlinux.org/packages/core/any/base/
# very very base
'filesystem' 'gcc-libs' 'glibc' 'bash'
# POSIX tools
'coreutils' 'file' 'findutils' 'gawk' 'grep' 'procps-ng' 'sed' 'tar'
# standard linux toolset
'gettext' 'pciutils' 'psmisc' 'shadow' 'util-linux' 'bzip2' 'gzip' 'xz'
# distro defined requirements
'licenses' 'pacman' 'archlinux-keyring' 'systemd' 'systemd-sysvcompat'
# networking, ping, etc
'iputils' 'iproute2'
./pacman-static --config pacman.conf --root=/mnt -S bash
resolving dependencies...
looking for conflicting packages...
Packages (9) filesystem-2023.01.31-1 gcc-libs-13.2.1-3 glibc-2.38-3 iana-etc-20230907-1 linux-api-headers-6.4-1
ncurses-6.4_20230520-1 readline-8.2.001-2 tzdata-2023c-2 bash-5.1.016-4
Total Download Size: 50.40 MiB
Total Installed Size: 217.39 MiB
dependencies:
- glibc
- libreadline.so=8-64 (readline)
- ncurses
- readline
- bash-completion (optional) - for tab completion
./pacman-static --config pacman.conf --root=/mnt -S coreutils
resolving dependencies...
looking for conflicting packages...
Packages (21) acl-2.3.1-3 attr-2.5.1-3 audit-3.1.2-1
e2fsprogs-1.47.0-1 gdbm-1.23-2 gmp-6.3.0-1
keyutils-1.6.3-2 krb5-1.20.1-1 libcap-2.69-1
libcap-ng-0.8.3-2 libevent-2.1.12-4
libldap-2.6.6-1 libsasl-2.1.28-4 libtirpc-1.3.3-2
libverto-0.3.2-4 libxcrypt-4.4.36-1
openssl-3.1.2-1 pam-1.5.3-3 pambase-20221020-1
util-linux-libs-2.39.2-1 coreutils-9.3-1
Total Download Size: 14.09 MiB
Total Installed Size: 48.90 MiB
:: Proceed with installation? [Y/n]
./pacman-static --config pacman.conf --root=/mnt -S pacman
resolving dependencies...
looking for conflicting packages...
Packages (49) brotli-1.0.9-12 bzip2-1.0.8-5
ca-certificates-20220905-1
ca-certificates-mozilla-3.93-1
ca-certificates-utils-20220905-1 curl-8.2.1-1
expat-2.5.0-1 findutils-4.9.0-3 gawk-5.2.2-1
gettext-0.22-1 glib2-2.78.0-2 gnupg-2.2.41-2
gnutls-3.8.1-1 gpgme-1.22.0-1 grep-3.11-1
icu-73.2-2 json-c-0.17-1 libarchive-3.7.1-1
libassuan-2.5.6-1 libffi-3.4.4-1
libgcrypt-1.10.2-1 libgpg-error-1.47-1
libidn2-2.3.4-3 libksba-1.6.4-1
libnghttp2-1.56.0-1 libp11-kit-0.25.0-1
libpsl-0.21.2-1 libsecret-0.21.0-1
libssh2-1.11.0-1 libsysprof-capture-3.48.0-4
libtasn1-4.19.0-1 libunistring-1.1-2
libusb-1.0.26-2 libxml2-2.11.5-1 lz4-1:1.9.4-1
mpfr-4.2.1-1 nettle-3.9.1-1 npth-1.6-4
p11-kit-0.25.0-1 pacman-mirrorlist-20230820-1
pcre2-10.42-2 pinentry-1.2.1-1 sqlite-3.43.0-1
systemd-libs-254.3-1 tpm2-tss-4.0.1-1 xz-5.4.4-1
zlib-1:1.3-1 zstd-1.5.5-1 pacman-6.0.2-7
Total Download Size: 39.62 MiB
Total Installed Size: 150.04 MiB
:: Proceed with installation? [Y/n]
./pacman-static --config pacman.conf --root=/mnt -S archlinux-keyring
resolving dependencies...
looking for conflicting packages...
Packages (1) archlinux-keyring-20230821-2
Total Download Size: 1.14 MiB
Total Installed Size: 1.62 MiB
chroot /mnt
pacman-key --init
pacman-key --populate archlinux
pacman -S systemd
resolving dependencies...
looking for conflicting packages...
Packages (20) argon2-20190702-5 cryptsetup-2.6.1-3
dbus-1.14.10-1 device-mapper-2.03.22-2
hwdata-0.374-1 iptables-1:1.8.9-1 kbd-2.6.2-1
kmod-30-3 libelf-0.189-3 libmnl-1.0.5-1
libnetfilter_conntrack-1.0.9-1 libnfnetlink-1.0.2-1
libnftnl-1.2.6-1 libnl-3.8.0-1 libpcap-1.10.4-1
libutempter-1.2.1-3 popt-1.19-1 shadow-4.13-3
util-linux-2.39.2-1 systemd-254.3-1
Total Download Size: 17.64 MiB
Total Installed Size: 72.66 MiB
pacman -Qe
archlinux-keyring 20230821-2
base 3-1
bash 5.1.016-4
bash-completion 2.11-3
coreutils 9.3-1
htop 3.2.2-1
iproute2 6.5.0-1
nano 7.2-1
neofetch 7.1.0-2
nnn 4.9-1
pacman 6.0.2-7
procps-ng 4.0.4-1
psmisc 23.6-1
systemd 254.3-1
systemd-sysvcompat 254.3-1
artix mirrors
https://wiki.artixlinux.org/Main/Mirrors
https://packages.artixlinux.org/details/base
https://gitea.artixlinux.org/packages/pacman/src/branch/master/pacman.conf
https://gitea.artixlinux.org/packages/artix-mirrorlist/src/branch/master/mirrorlist
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
nano pacman.conf
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Never
[system]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
[world]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
[galaxy]
Server = https://mirrors.tuna.tsinghua.edu.cn/artixlinux/$repo/os/$arch
sudo mkdir -p /mnt/var/lib/pacman/
sudo ./pacman-static --config artix.conf --root=/home/kai/arch -Syu base
:: Synchronizing package databases...
system is up to date
world is up to date
galaxy is up to date
:: Starting full system upgrade...
resolving dependencies...
:: There are 8 providers available for init-logind:
:: Repository system
1) elogind-dinit 2) elogind-openrc 3) elogind-s6
:: Repository world
4) elogind-runit 5) seatd-dinit 6) seatd-openrc 7) seatd-runit 8) seatd-s6
1. elogind-dinit
Packages (125)
Total Download Size: 123.67 MiB
Total Installed Size: 506.55 MiB
2. elogind-openrc
Packages (128)
Total Download Size: 141.87 MiB
Total Installed Size: 583.80 MiB
3. elogind-s6
Packages (130)
Total Download Size: 124.00 MiB
Total Installed Size: 509.08 MiB
4. elogind-runit
warning: runit-rc will be installed before its runit dependency
Packages (127)
Total Download Size: 124.00 MiB
Total Installed Size: 508.14 MiB
5. seatd-dinit
Packages (123)
Total Download Size: 122.73 MiB
Total Installed Size: 503.63 MiB
6. seatd-openrc
Packages (127)
Total Download Size: 140.94 MiB
Total Installed Size: 580.88 MiB
7. seatd-runit
Enter a number (default=1): 7
Packages (124)
warning: runit-rc will be installed before its runit dependency
Total Download Size: 120.07 MiB
Total Installed Size: 491.75 MiB
8. seatd-s6
Packages (128)
Total Download Size: 123.07 MiB
Total Installed Size: 506.16 MiB
archlinux repo in artix
mkdir /home/kai/.config/arch/
nano /home/kai/.config/arch/config
[options]
HoldPkg = pacman glibc
Architecture = auto
CheckSpace
SigLevel = Never
LocalFileSigLevel = Optional
[core]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[extra]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
[community]
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch
only gnome-terminal is available for wayland in artix repo
sudo pacman --config ~/.config/arch/config -Sy
sudo pacman --config ~/.config/arch/config -S foot foot-terminfo
nano .bin/pacman-arch
pacman --config /home/kai/.config/arch/config "$@"
chmod +x .bin/pacman-arch
do not do sudo pacman-arch -Syu from this
you can also do official way if you use a lot of package
https://wiki.artixlinux.org/Main/Repositories
https://github.com/Xynonners/dinit-userservd/tree/master
https://github.com/Xynonners/dinit-userservd-services
services are in /etc/dinit.d
dinit
dinitcheck
dinitctl
- dinit-init
- dinit-monitor
/etc/dinit.d/config/
- configurations for dinit services/etc/dinit.d/boot.d/
- dinit services that run on boot/etc/dinit.d/scripts/
- dinit wrapper scripts/var/log/dinit/
- logs for dinit services/etc/dinit.d/service_name-pre
- preparation service, in some cases, this is needed because the "preparation" must be run as root but the service itself must be run as its own user
- Start service:
# dinitctl start service_name
- Stop service:
# dinitctl stop service_name
- Restart service:
# dinitctl restart service_name
- Enable service:
# dinitctl enable service_name
- Disable service:
# dinitctl disable service_name
- List services:
# dinitctl list
dinitcheck
is usually used if to check if
there is any problem with the dinit service directory, it will check
for any syntax errors, invalid parameter values, and dependency cycles.
type = process | bgprocess | scripted | internal command = /path/to/servicename restart = (boolean) smooth-recovery = (boolean) logfile = ... depends-on = (service name) waits-for = (service name)
There are four types of dinit services:
process
, for foreground daemonsbgprocess
, for forking daemonsscripted
, for oneshotsinternal
, which is only useful inside dinit and is usually used to "gather" lots of dependencies into one big dependency, or similar to "bundle" in s6.
There are three types of dependencies:
depends-on
is hard dependency, so if any service is named here, it must run no matter what before the service is starteddepends-ms
is a milestone dependency, so while the rules of depends-on apply when starting service, if the dependency stopped, the dependent will still runwaits-for
is soft dependency, while the service will wait for its dependency to run, it will still run if the dependency fails
https://davmac.org/projects/dinit/man-pages-html/dinit-service.5.html
https://davmac.org/projects/dinit/man-pages-html/dinit-monitor.8.html
https://davmac.org/projects/dinit/man-pages-html/dinit.8.html
https://github.com/davmac314/dinit/blob/master/doc/linux/DINIT-AS-INIT.md
https://davmac.org/projects/dinit
/etc/dinit.d/service-name, $HOME/.config/dinit.d/service-name
make pipewire user service
when run as user dinit looks for ~/.config/dinit.d/boot
mkdir -p ~/.config/dinit.d/boot.d/
cat ~/.config/dinit.d/boot
# The primary service
type = internal
logfile = ~/.local/share/dinit/user.log
waits-for.d = boot.d
cat dbus
type = process
load-options = sub-vars
logfile = $HOME/.local/share/dinit/dbus.log
command = /home/kai/.config/scripts/dbus-session --print-address 3
smooth-recovery = true
ready-notification = pipefd:3
cat pipewire
type = process
load-options = sub-vars
logfile = $HOME/.local/share/dinit/pipewire.log
command = pipewire
restart = true
#depends-on = dbus.user
cat pipewire-pulse
type = process
load-options = sub-vars
logfile = $HOME/.local/share/dinit/pipewire-pulse.log
command = pipewire-pulse
restart = true
depends-on = pipewire
cat wireplumber
type = process
load-options = sub-vars
logfile = $HOME/.local/share/dinit/wireplumber.log
command = wireplumber
restart = true
smooth-recovery = true
depends-on = pipewire
#depends-on = pipewire-pulse
ln -s ../wireplumber ~/.config/dinit.d/boot.d/
services taken from
https://github.com/Xynonners/dinit-userservd-services
docs
https://github.com/davmac314/dinit/blob/master/doc/getting_started.md
to enable service link to boot.d like this
ln -s ../svname /etc/dinit.d/boot.d/
add user to audio group
usermod -aG audio kai
Comments
Post a Comment