From 71d40463f0fc9c7b2a5bee846da72d4a32ee885b Mon Sep 17 00:00:00 2001
From: Woodpecker CI Here lies documentation for Alice Linux. If you found any typo or error in docs, or even wan't to contribute, feel free to open issue :D Copyright (C) Alice Linux, 2024 Once we have the repositories cloned, we need to configure First, we set And use whats in Next set I'm also going to set Next, we need to set the package's build scripts path (I'll call it Alice provides two (2) I'm gonna use directory NOTE: All repo paths must be declared in the APKG_REPO variable, separated by a single space. NOTE: All repo paths must be declared in the APKG_REPO variable, separated by a single space. Next, we will set up directories for First, create the directories: Now run
-After setting up our After setting up our Before we do, install development packages first. NOTE: use upppercase 'i' for solve dependencies, lowecase 'i' without solve dependencies. NOTE: use upppercase 'i' for solve dependencies, lowecase 'i' without solve dependencies. Now lets upgrade our system. NOTE: Use uppercase NOTE: Use uppercase If you changed NOTE: Add the NOTE: Add the NOTE: You can configure your own kernel from kernel.org or use the one provided by Alice.
- NOTE: The provided kernel will take a lot of time to compile because many options are enabled. You can configure your own kernel from kernel.org or use the one provided by Alice. NOTE: The provided kernel will take a lot of time to compile because many options are enabled. If you want to use Alice's kernel, just run:docs
+ home / docs / development / download / iso / community / donate
+
+
+ Configure apkg.conf
apkg. apkg is Alice's package build system (or package manager). By default, Alice does not provide an apkg config file (yes, apkg can work without a config file), but we need to create one. The apkg config file should be located at /etc/apkg.conf by default. Let's create one. CFLAGS and CXXFLAGS. Alice base packages are built using -O3 -march=x86-64 -pipe. You can use these settings or change them to your preference.# echo 'export CFLAGS="-O3 -march=x86-64 -pipe"' >> /etc/apkg.conf
+# echo 'export CFLAGS="-O3 -march=x86-64 -pipe"' >> /etc/apkg.conf
CFLAGS for CXXFLAGS.# echo 'export CXXFLAGS="$CFLAGS"' >> /etc/apkg.conf
+# echo 'export CXXFLAGS="$CFLAGS"' >> /etc/apkg.conf
MAKEFLAGS. I will use 6 for my 8 threads machine.# echo 'export MAKEFLAGS="-j6"' >> /etc/apkg.conf
+# echo 'export MAKEFLAGS="-j6"' >> /etc/apkg.conf
NINJAJOBS here. Without it, ninja will use all threads of your machine when compiling.# echo 'export NINJAJOBS="6"' >> /etc/apkg.conf
+# echo 'export NINJAJOBS="6"' >> /etc/apkg.conf
package repos) so apkg can find them. The APKG_REPO variable can accept multiple values for multiple package repos.package repos (at the time of this writing): core and extra. core contains all base packages, and extra includes other packages beyond the base./var/lib/repos/core and /var/lib/repos/extra for core and extra repos respectively.# echo 'APKG_REPO="/var/lib/repos/core /var/lib/repos/extra"' >> /etc/apkg.conf
+
-# echo 'APKG_REPO="/var/lib/repos/core /var/lib/repos/extra"' >> /etc/apkg.conf
+
packages, sources, and work. By default, these directories are inside the package template, but we will change them to /var/cache/pkg, /var/cache/src, and /var/cache/work respectively. You can change these to any location where you want to store these files.reposync to sync latest package templates.
-# reposync
package repos, make sure apkg can find the packages. We can use apkg -s <pattern> to search for packages.package repos, make sure apkg can find the packages. We can use apkg -s <pattern> to search for packages.# apkg -s sway
swayidle
swaybg
@@ -155,23 +156,26 @@ sway
-# apkg -I meson cmake pkgconf libtool automake perl
+
-# apkg -U
U for a system upgrade, and lowercase u to upgrade a specific package of your choice.
+
U for a system upgrade, and lowercase u to upgrade a specific package of your choice.CFLAGS and CXXFLAGS to something other than the default, it's a good time to perform a full rebuild first. In this case, you can skip upgrading the system because performing a full rebuild will already use the latest version in package repos.
-# apkg -u $(apkg -a)
-f flag to force rebuild of existing prebuilt package.
-NOTE: apkg -a prints all installed packages on the system.
+
-f flag to force rebuild of existing prebuilt package.apkg -a prints all installed packages on the system.Install kernel
-
+
# apkg -I linux
@@ -203,10 +207,10 @@ NOTE: apkg -a prints all installed packages on the system.
I'm enabling 3 tty services. tty is required; without it, you won't be able to log in (or run any commands).
-
The runit service directory is
+/etc/sv. -Create a symlink from/etc/sv/<service>to/var/serviceto enable it; remove the symlink to disable it.I'm enabling 3
+ttyservices.ttyis required; without it, you won't be able to log in (or run any commands).+The runit service directory is
+/etc/sv.Create a symlink from
/etc/sv/<service>to/var/serviceto enable it; remove the symlink to disable it.Setup user and password
Add your user:
diff --git a/docs/packagemanager.html b/docs/packagemanager.html index 95a133da..b4978f7b 100644 --- a/docs/packagemanager.html +++ b/docs/packagemanager.html @@ -95,16 +95,12 @@ nsxiv 32-1@@ -137,11 +133,9 @@ linux lib/modules/6.6.41-Alice/build/scripts/dummy-tools/gcc [pkgname] Package 'pkgname#pkgversion-pkgrelease' upgraded.(build package) $ ./configure --prefix=/usr $ make - (install into fake directory) $ make DESTDIR=$PWD/fakeroot install - (turn fake directory into package (package.spm)) # spm -b $PWD/fakeroot - (mv 'package.spm' into correct format (name#version-release.spm)) # mv package.spm pkgname#pkgversion-pkgrelease.spm - (install package into system) # spm -i pkgname#pkgversion-pkgrelease.spmspm - environment
--
+- env description - SPM_ROOT use custom root location for package installation - SPM_FORCEINSTALL set any value to ignore conflicted files SPM_ROOT: use custom root location for package installation +SPM_FORCEINSTALL: set any value to ignore conflicted files +You can pass these environment to
spmcommand, example:# SPM_ROOT=/mnt/rootfs spm -i pkgname#pkgversion-pkgrelease.spm # SPM_FORCEINSTALL=1 SPM_ROOT=/mnt/rootfs spm -i pkgname#pkgversion-pkgrelease.spm @@ -273,10 +267,10 @@ util-macrosmake full system rebuild in dependencies order (
-f: force rebuild,-u: upgrade/reinstall,-D: solve dependency order,-a: list all installed package(s)):-# apkg -f -u $(apkg -D $(apkg -a)) -... +... (start rebuilding package in dependencies order here) -...
+... +remove installed packages:
# apkg -r wlroots pango sway [...] Package 'wlroots' removed. @@ -289,20 +283,18 @@ util-macrosapkg - environment
You can pass environment to
-apkgto override defaults and in/etc/apkg.conf. Available environment and its default value as follows:-
+- env default value description - APKG_ROOT / root for package installation - APKG_CONF /etc/apkg.conf apkg's config file - APKG_REPO defaults is empty, template repo path, space separated variable - APKG_PACKAGE_DIR $PWD prebuilt package directory path - APKG_SOURCE_DIR $PWD package source directory path - APKG_WORK_DIR $PWD package working directory path - APKG_NOPROMPT skip prompt, use any value env default value description +APKG_ROOT / root for package installation +APKG_CONF /etc/apkg.conf apkg's config file +APKG_REPO defaults is empty, template repo path, space separated variable +APKG_PACKAGE_DIR $PWD prebuilt package directory path +APKG_SOURCE_DIR $PWD package source directory path +APKG_WORK_DIR $PWD package working directory path +APKG_NOPROMPT defaults is empty, skip prompt, use any value +You can add these environment into
apkgconfig file./etc/apkg.conf
-+
apkgcan work without its config file by using all default value. Default config path forapkgis/etc/apkg.conf. You can override config path by appendAPKG_CONFtoapkg, example: -
apkgcan work without its config file by using all default value. Default config path forapkgis/etc/apkg.conf. You can override config path by appendAPKG_CONFtoapkg, example:# APKG_CONF=/etc/apkg-local.conf apkg <args>revdep
@@ -310,14 +302,14 @@ util-macrosUsage:
(print out broken packages) $ revdep - (verbosely print missing libraries) $ revdep -vYou can combine with
apkgto rebuild broken packages, example;-# apkg -f -u $(revdep)NOTE:
+revdepdoes not solve dependencies, so you might need manually rebuild broken packages instead combine withapkg.+NOTE:
revdepdoes not solve dependencies, so you might need manually rebuild broken packages instead combine withapkg.updateconf
@@ -335,17 +327,14 @@ $ revdep -v
updateconfis script to update configuration files inside/etcdirectory. Its recomended to run after packages upgrades.Usage:
(to remove old packages) # apkg-clean -p | xargs rm - (to remove old sources) # apkg-clean -s | xargs rm - (to remove both old packages and sources) # apkg-clean | xargs rmapkg-deps
Script to find runtime linked dependencies of installed package. Its good to figure out dependenciess when writing package template.
-Usage: -
+Usage:
$ apkg-deps <pkg>apkg-foreign
@@ -353,7 +342,6 @@ $ revdep -vUsage:
@@ -367,7 +355,6 @@ $ apkg-foreign(print list foreign packages) $ apkg-foreign - (remove foreign packages) # apkg -r $(apkg-foreign)usage:
-- cgit v1.2.3(print package contains redundant dependencies) $ apkg-redundantdeps - (remove redundant dependencies for depends list) $ apkg-redundantdeps -f