diff --git a/css/nord.css b/css/nord.css index 384d9d5..812c4cc 100644 --- a/css/nord.css +++ b/css/nord.css @@ -253,6 +253,12 @@ cil { padding: 2px; } +cil-inv { + font-family: monospace; + background-color: #2E3440; + color: #ECEFF4; + padding: 2px; + wiki { border-left-style: solid; border-left-width: 4px; diff --git a/docs/intro-to-glacier.html b/docs/intro-to-glacier.html index eef17a4..f26355f 100644 --- a/docs/intro-to-glacier.html +++ b/docs/intro-to-glacier.html @@ -28,13 +28,42 @@

1 - Introduction

Glacier is the package management system for Glacier. All users should be familiar with how it works.

-

2 - Terminology

-

In this case, the word 'merge' and 'install' mean the same thing.

-

A package index is a list of all installed packages on any given Everest system.

-

The local index is managed by all users on the system, and is located in /usr/glacier/index.

-

The global index is managed by Git, and is located in /glacier/index.

-

A system profile describes your base system, including C library, architecture, SELinux support, multilib support, etc.

-

3 - Included programs

+

2 - Package Indexes

+

On an Everest system, packages are stored in an "index", of which there are two, the system index and the user index.

+

The system index is located in /glacier/index, and the user index is localed in /usr/glacier/index.

+

When you merge a package from a repository, gpkg will retrieve the file, execute the relevant instruction sets, and store the package in the user index. syspkg will operate on the system index instead. On update, gpkg will retrieve the package from the user index and execute the relevant instruction sets. The package will then be moved back into the user index. On removal, the package will be moved to /tmp oncde the removal instructions have been executed.

+

3 - Repositories

+

Unlike most distributions, Everest installations include a copy of the package repository on the local system. Rather than downloading packages from a remote server, Glacier clones a package from the local repository.

+

This presents some advantages:

+ +

And also some disadvantages:

+ +

The glacier-update-pkgdb program can be used to update the local repository. This should be done regularly (at least once a week) to ensure the newest and most secure packages are available.

+

4 - The System Profile

+

An Everest installation includes a system profile. In simple terms, this is a series of environment variables and configurations that tell Glacier which packages it can install. The system profile should not change unless the user intends to migrate profiles.

+

The following environment variables are defined by the system profile:

+ +

The following system profiles are available:

+ +

The following system profiles are planned for the future:

+ +

5 - Included programs

3.1 gpkg

gpkg is the program most users will be interacting with. It handles the downloading, installation, and logging of packages.

3.2 syspkg

@@ -49,13 +78,13 @@

glacier-mkprofile makes changes to the system-wide profile. Users should not interact with this unless needed.

3.7 glacier-update-pkdgb

glacier-update-pkgdb syncs the local package database with the remote server. This command should be run periodically to ensure you have the most up-to-date packages.

-

4 - Frontends

+

6 - Frontends

Frontends, or wrappers, may provide additional functionality to Glacier.

WARNING:

Third party frontends and wrapper scripts are not supported. Use them at your own risk.

-

5 - Merging packages

+

7 - Merging packages

5.1 Using gpkg

To merge a package from a repository:

(root)# gpkg -f pkg @@ -66,7 +95,7 @@

If you understand these risks, and wish to use syspkg anyways, you are acknowledging that things may break.

To merge a package:

(root)# syspkg -f pkg -

6 - Updating packages

+

8 - Updating packages

6.1 Introduction

When merging a package into any index, the package file is retained in said index. This provides most information needed to keep track of the package, however, when updating, an updated package file will need to be downloaded. Old package files will be retained as pkgname.old.

6.2 Using gpkg

@@ -81,7 +110,7 @@

To update a package:

(root)# syspkg -u pkg -

7 - Removing packages

+

9 - Removing packages

7.1 Introduction

When removing a package, the package info file is moved from the appropriate index to /tmp, and saved as pkgname.rm. This means it will be wiped after the next reboot.

7.2 Using gpkg

@@ -96,7 +125,7 @@

If you wish to proceed anyways, you can remove a package with:

(root)# syspkg -x pkg -

8 - Advanced usage

+

10 - Advanced usage

8.1 Patching packages

Patching packages is the act of editing a package file to change compile options, optimizations, etc. It is very useful if used correctly.

The officially tested and verified method for patching is as follows:

@@ -109,7 +138,7 @@

If Glacier's standard package repository is not sufficient, you can use a custom one.

WARNING:
-

Ensure the repository you wish to migrate to supports your system profile. For example, if your profile is x86-musl, the new repository should offer packages compatible with x86-musl.

+

Ensure the repository you wish to migrate to supports your system profile. For example, if your profile is x86-musl, the new repository should offer packages compatible with x86-musl.

Errors will occur if this is not taken into account.

To use a custom repository once, to merge a package:

@@ -158,7 +187,7 @@

GLACIER_SRV_DIR="/etc/glacier/services"

$GLACIER_SRV_DIR/update-pkgdb.hook

-

9 - Querying packages

+

11 - Querying packages

9.1 Introduction

Glacier packages, in ther simplest form, are text files, containing instructions on how the package is built, who made it, what it's called, and what files it includes.

9.2 Querying files

@@ -167,7 +196,12 @@

9.3 Querying info

Package info can be listed with:

(user)$ gquery -i pkg -

10 - Writing packages

+

12 - Writing packages

+ NOTE: +
+

This section is outdated as of 9/17/2024

+

Reason: Glacier v4 changes the package format

+

10.1 Introduction

As mentioned before, Glacier packages are simply text files. This makes them very easy to write and maintain.

If you have previous experience writing PKGBUILDs for the AUR, writing Glacier packages should feel very similar.

@@ -227,7 +261,7 @@

Anything prefixed with "system" refers to the use of 'syspkg'.