33 Commits

Author SHA1 Message Date
f2680148f3 Merge branch 'main' into march-22 2025-03-25 11:58:29 -04:00
1d5c03a089 Merge branch 'march-22' of https://git.everestlinux.org/EverestLinux/everest-web into march-22
need to reconcile branches
2025-03-25 11:52:55 -04:00
c4bb678804 restore documentation lost from PR 2025-03-25 11:51:25 -04:00
ef4cdbf7af Merge pull request 'march-22' (#3) from march-22 into main
Reviewed-on: #3
2025-03-22 13:54:32 -04:00
7ea16cb542 Merge pull request '3/22' (#2) from march-22-backlog into march-22
Reviewed-on: #2
2025-03-22 13:53:34 -04:00
66fbb7653e 3/22 2025-03-22 13:51:17 -04:00
3b1b0464be 12/15 2024-12-15 11:57:40 -05:00
f7cb8fe6cf 11/11 - update libglacier documentation 2024-11-11 15:05:34 -05:00
304bd29b08 10/10 2024-10-10 10:34:36 -04:00
82335b982b fix issue with css 2024-09-18 14:52:15 -04:00
6f5a54175e Merge branch 'main' of https://git.everestlinux.org/EverestLinux/everest-web
merge error
2024-09-17 09:45:12 -04:00
7dea28cb16 9/17 2024-09-17 09:44:39 -04:00
5aa3c4676b 7/12 take three 2024-07-12 12:57:18 -04:00
5075233672 7/12 take two 2024-07-12 12:53:14 -04:00
1fb58eafe8 7/12 2024-07-12 12:49:21 -04:00
aa61054d1d hi 2024-02-01 08:48:40 -05:00
4705d60122 12/20/23 2023-12-20 08:07:09 -05:00
40aa3b785f 12/7/23 2023-12-07 12:06:54 -05:00
1eda26a9c8 12/7/23 2023-12-07 12:06:00 -05:00
7a64527a1a add developers 2023-10-27 09:57:02 -04:00
d24da5e476 style tables and add developers directory in about 2023-10-27 09:44:21 -04:00
8a7cc0dc7b QOL 2023-10-19 18:58:47 -04:00
e44fbcb0c1 10/19/23 2.0 2023-10-19 12:39:56 -04:00
82c02bb697 10/19/23 2023-10-19 11:59:54 -04:00
b8a1522efa hi 2023-10-13 14:10:27 -04:00
7563504c75 10/13/23 2023-10-13 13:58:30 -04:00
67582e283e hello 2023-10-13 12:59:24 -04:00
4f9d05af65 9/29 2023-09-29 10:40:16 -04:00
538595b67b new nord theming 2023-09-29 09:18:06 -04:00
b2989bfc4b 9/5 2023-09-05 22:03:29 -04:00
c1a4903b0e 6/18/23 2023-06-18 22:32:02 +01:00
eec31003b0 Add BitTorrent warning to downloads 2023-06-08 10:01:02 -04:00
6d4f53bfb3 update install.html and index.html 2023-06-08 09:06:23 -04:00
22 changed files with 1813 additions and 237 deletions

8
TODO_EVERESTWEB Normal file
View File

@@ -0,0 +1,8 @@
+ TODO_EVERESTWEB
(*) denotes incomplete
(-) denotes complete
=== BEGIN TASK LIST ===
* Make announcement about delays

View File

@@ -4,25 +4,29 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - About</title> <title>Everest Linux - About</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
<link rel="icon" type="image/x-icon" href="img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>About</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>About Everest</h2> <h2>About Everest</h2>
<p>Everest Linux is a source based Linux meta-distribution, with a focus on simplicity and flexibility.</p> <p>Everest Linux is a source based Linux meta-distribution, with a focus on simplicity and flexibility.</p>
@@ -35,23 +39,40 @@
<p>September 2022 - Different ways of bootstrapping a base system are tested by the development team.</p> <p>September 2022 - Different ways of bootstrapping a base system are tested by the development team.</p>
<p>October 2022 - Glacier v3 is released.</p> <p>October 2022 - Glacier v3 is released.</p>
<p>December 2022 - System image builds done by the development team.</p> <p>December 2022 - System image builds done by the development team.</p>
<p>February 2023 - Work on Glacier v4 is begun, website overhaul.</p>
<p>April 2023 - ecrypy, pm, and nc released.</p>
<p>December 2023 - Glacier C rewrite announced</p>
<h2>Design Principles</h2> <h2>Design Principles</h2>
<p>Our design principles heavily influence and guide development. You may notice we share many of these with Arch.</p> <p>Our design principles heavily influence and guide development. You may notice we share many of these with Arch.</p>
<strong>Simplicity</strong> <strong>Simplicity</strong>
<p>We follow the UNIX philosphy when possible. Programs should do one thing, and do it right. Our packages have almost zero modifications from upstream. <p>We follow the UNIX philosphy when possible. Programs should do one thing, and do it right. Our packages have almost zero modifications from upstream. The base system contains only what you need to start building your system. The base Everest system also weighs in at around 100 MB</p>
<p>The base system contains only what you need to start building your system. The base Everest system also weighs in at around 100 MB</p>
<strong>Flexibility</strong> <strong>Flexibility</strong>
<p>Everest is designed with flexibility in mind. Any modification can be achieved if the user has enough knowledge. For example, it is possible to replace Busybox with sbase, or use runit as your init system, all without breakage.</p> <p>Everest is designed with flexibility in mind. Any modification can be achieved if the user has enough knowledge. For example, it is possible to replace Busybox with sbase, or use runit as your init system, all without breakage.</p>
<strong>Functionality versus Ideology</strong> <strong>Functionality versus Ideology</strong>
<p>The developers of Everest are strong advocates of free software, but understand that it cannot be implemented 100% of the time, such as</p> <p>The developers of Everest are strong advocates of free software, but understand that it cannot be implemented 100% of the time, such as in the form of drivers. We also understand that some users may prefer proprietary software over libre counterparts. We take no steps to prevent proprietary software in our package database, only requiring it to be licensed as such. This is a very different approach from heavily ideological distributions, some of which remove support for certain programs on a purely ideological basis.</p>
<p>in the form of drivers. We also understand that some users may prefer proprietary software over libre counterparts. We take</p>
<p>no steps to prevent proprietary software in our package database, only requiring it to be under <strong>multiverse</strong>.</p>
<p>This is a very different approach from heavily ideological distributions, some of which remove support for certain programs on a purely ideological basis.</p>
<strong>User Centrality</strong> <strong>User Centrality</strong>
<p>We believe that instead of trying to make Everest easy to use out-of-the-box, we should instead focus on improving functionality for experienced users.</p> <p>We believe that instead of trying to make Everest easy to use out-of-the-box, we should instead focus on improving functionality for experienced users.</p>
<h2>Developers</h2>
<table>
<tr>
<th>Name</th>
<th>Email</th>
<th>Role(s)</th>
</tr>
<tr>
<td>Liam Waldron (lw-everestlinux)</td>
<td>liamwaldron@everestlinux.org</td>
<td>Head Developer</td>
</tr>
<tr>
<td>Grayson Ward (arco-everestlinux)</td>
<td>N/A</td>
<td>Developer</td>
</tr>
</table>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -136,6 +136,15 @@ newshead {
color: #4a86e8ff; color: #4a86e8ff;
} }
wikihead {
border-left-style: solid;
border-left-color: Tomato;
border-width: 4px;
border-radius: 2px;
padding: 6px;
color: Tomato;
}
@media screen and (max-height: 450px) { @media screen and (max-height: 450px) {
.sidenav {padding-top: 15px;} .sidenav {padding-top: 15px;}
.sidenav a{font-size: 18px;} .sidenav a{font-size: 18px;}
@@ -204,15 +213,15 @@ hr.dotted {
/* p { /* p {
color: #e6e6e6; color: #e6e6e6;
}
/* strong {
color: #e6e6e6;
} */ } */
i { /* strong {
color: #4a86e8ff;
} */
/* i {
color: #e6e6e6; color: #e6e6e6;
} } */
footer { footer {
text-align: center; text-align: center;

407
css/nord.css Normal file
View File

@@ -0,0 +1,407 @@
/* css/everest.css - stylesheet for everest-web */
/*
Copyright (C) 2023 Everest Linux.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
*/
/* Sidebar menu */
.sidenav {
height: 100%;
width: 200px;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #2E3440;
overflow-x: hidden;
padding-top: 20px;
}
/* Menu links */
.sidenav a {
padding: 6px 8px 6px 16px;
text-decoration: none;
font-size: 20px;
color: #D8DEE9;
display: block;
}
.sidenav a:hover {
color: #88c0d0;
}
html {
background-color: #3B4252;
color: #ECEFF4;
}
.main {
margin-left: 200px;
padding: 0px 10px;
background-color: #3B4252;
}
.file {
font-family: monospace;
background-color: #2E3440;
border-left-style: solid;
border-left-color: #A3BE8C;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #ECEFF4;
}
.kernel {
font-family: monospace;
background-color: #2E3440;
border-left-style: solid;
border-left-color: #B48EAD;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #ECEFF4;
}
.note {
background-color: #88C0D0;
border-left-style: solid;
border-left-color: #88C0D0;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #2E3440;
}
.caution {
background-color: #EBCB8B;
border-left-style: solid;
border-left-color: #EBCB8B;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #2E3440;
}
.warning {
background-color: #BF616A;
border-left-style: solid;
border-left-color: #BF616A;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #D8DEE9;
}
.news {
background-color: #2E3440;
border-left-style: solid;
border-left-color: #88C0D0;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #ECEFF4;
}
table, td {
border: 2px solid;
border-color: #ECEFF4;
border-collapse: collapse;
padding: 4px;
background-color: #2E3440;
}
th {
border: 2px solid;
background-color: #88C0D0;
color: #2E3440;
border-color: #ECEFF4;
}
notehead {
background-color: #88C0D0;
border-left-style: solid;
border-left-color: #88C0D0;
border-width: 4px;
border-radius: 2px;
padding: 6px;
width: 50%;
color: #2E3440;
}
fhead {
background-color: #2E3440;
border-left-style: solid;
border-left-color: #A3BE8C;
border-width: 4px;
border-radius: 2px;
padding: 6px;
width: 50%;
color: #A3BE8C;
}
khead {
background-color: #2E3440;
border-left-style: solid;
border-left-color: #B48EAD;
border-width: 4px;
border-radius: 2px;
padding: 6px;
width: 50%;
color: #B48EAD;
}
cautionhead {
background-color: #EBCB8B;
border-left-style: solid;
border-left-color: #EBCB8B;
border-width: 4px;
border-radius: 2px;
padding: 6px;
width: 50%;
color: #2E3440;
}
warnhead {
background-color: #BF616A;
border-left-style: solid;
border-left-color: #BF616A;
border-width: 4px;
border-radius: 2px;
padding: 6px;
width: 50%;
color: #D8DEE9;
}
newshead {
background-color: #2E3440;
border-left-style: solid;
border-left-color: #88C0D0;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #88C0D0;
}
wikihead {
border-left-style: solid;
border-left-color: #D08770;
border-width: 4px;
border-radius: 2px;
padding: 6px;
color: #D08770;
}
bigcodehead {
background-color: #2E3440;
border-left-style: solid;
border-left-color: #ECEFF4;
border-width: 4px;
border-radius: 2px;
padding: 4px;
width: 50%;
color: #ECEFF4;
}
@media screen and (max-height: 450px) {
.sidenav {padding-top: 15px;}
.sidenav a{font-size: 18px;}
}
body {
font-family: sans-serif;
background-color: #3B4252;
color: #ECEFF4;
}
code {
font-family: monospace;
background-color: #2E3440;
border-left-style: solid;
border-left-width: 4px;
border-radius: 2px;
padding: 2px;
color: #ECEFF4;
}
.bigcode {
font-family: monospace;
background-color: #2E3440;
border-left-style: solid;
border-left-width: 4px;
border-radius: 2px;
padding: 6px;
border-color: #ECEFF4;
width: 50%;
}
cil {
font-family: monospace;
background-color: #2E3440;
padding: 2px;
}
cil-inv {
font-family: monospace;
background-color: #2E3440;
color: #ECEFF4;
padding: 2px;
}
wiki {
border-left-style: solid;
border-left-width: 4px;
border-radius: 2px;
padding: 6px;
border-color: #D08770;
}
/* file {
border-style: solid;
border-width: 4px;
border-radius: 2px;
padding: 2px;
border-color: black;
} */
h2 {
border-left-style: solid;
border-color: #88C0D0;
padding-left: 4px;
border-left-width: 6px;
border-radius: 5px;
color: #ECEFF4;
}
button {
font-size: 24px;
border-style: none;
border-left-style: solid;
border-width: 8px;
padding: 12px 28px;
border-color: #88C0D0;
border-radius: 5px;
background-color: #434C5E;
color: #ECEFF4;
}
button:hover {
background-color: #4C566A;
}
hr.dotted {
border-top: 3px dotted #bbb;
}
/* p {
color: #e6e6e6;
} */
/* strong {
color: #4a86e8ff;
} */
/* i {
color: #e6e6e6;
} */
footer {
text-align: center;
font-size: 10px;
padding: 20px;
}
#myInput {
width: 378px;
font-size: 16px;
padding: 10px;
border: 2px solid #88C0D0;
border-radius: 2px;
margin-bottom: 12px;
background-color: #434C5E;
color: #ECEFF4;
}
#myUL {
width: 400px;
list-style-type: none;
padding: 0;
margin: 0;
}
#myUL li a {
border-left-width: 2px;
border-left-style: solid;
border-left-color: #88C0D0;
margin-top: -1px;
background-color: #434C5E;
padding: 12px;
text-decoration: none;
font-size: 18px;
color: #ECEFF4;
display: block;
}
#myUL li a:hover:not(.header) {
background-color: #4C566A;
}
img {
padding: 8px;
}
/* */
body, html {
height: 100%;
}
/* The hero image */
.hero-image {
background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url("../img/banner.jpg");
height: 55%;
background-position: 50% 30%;
background-repeat: no-repeat;
background-size: cover;
position: relative;
padding-top: 0px;
padding-right: 0px;
margin-right: -8px;
margin-top: -8px;
}
.hero-text {
text-align: center;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
color: white;
}
hr {
color: #88c0d0;
width: 50%;
border-width: 4px;
border-radius: 5px;
margin-left: 0;
}
.tab {
display: inline-block;
margin-left: 80px;
}

153
docs/dev-docs.html Normal file
View File

@@ -0,0 +1,153 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head>
<body>
<!-- Navbar -->
<div class="sidenav">
<img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a>
<a href="../about.html">About</a>
<a href="../install.html">Install</a>
<a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a>
<a href="home.html">Docs</a>
<a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git ↗</a>
</div>
<!-- Rest of page -->
<div class="main">
<button onclick="window.location.href='home.html';">
Back to home
</button>
<h2>Developer Documentation</h2>
<p>This page contains developer-specific documentation.</p>
<h2>1 - Coding Style</h2>
<p><strong>1.1</strong> C</p>
<p><i>1.1.1</i> File Structure</p>
<p>Files should follow this format:<p>
<ul>
<li>Header comment, including program name and LICENSE</li>
<li>Headers</li>
<li>Macros</li>
<li>Types</li>
<li>Global variables</li>
<li>Functions</li>
<li><cil>main</cil> (if applicable)</li>
</ul>
<p>Note that function declarations should be defined in a separate header, ex:</p>
<p><cil>#include "project_name.h"</cil></p>
<p>Indentations should be a single tab and be equal to 8 characters for better readability.</p>
<p><i>1.1.2</i> Functions</p>
<p>Functions should have their return type on one line, their name and parameters one line down, and the bracket one line under the name and arguments.</p>
<p>Example:</p>
<bigcodehead><strong>CODE:</strong> Proper function formatting in C</bigcodehead>
<div class="bigcode">
<p>static void</p>
<p>usage(int argc, char *argv[])
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("usage: %s [-a] [-b]\n", argv[0]);</p>
<p>}</p>
</div>
<p></p>
<p><i>1.1.3</i> Example Program</p>
<fhead><strong>FILE:</strong> prog.c</fhead>
<div class="file">
<p>#include &lt;stdio.h&gt;</p>
<p>&nbsp;</p>
<p>#include "prog.h"</p>
<p>&nbsp;</p>
<p>void</p>
<p>hello()</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("hello\n");
<p>}</p>
<p>&nbsp;</p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hello();
<p>}</p>
</div>
<p></p>
<fhead><strong>FILE:</strong> prog.h</fhead>
<div class="file">
<p>#ifndef PROG_H_</p>
<p>#define PROG_H_</p>
<p>&nbsp;</p>
<p>void hello();</p>
<p>&nbsp;<p>
<p>#endif</p>
</div>
<p><i>1.1.4</i> common.h</p>
<p>For large programs which include many header files, it is perfectly acceptable to define these includes in a separate header and then include that in each file.</p>
<fhead><strong>FILE:</strong> common.h</fhead>
<div class="file">
<p>#ifndef COMMON_H_</p>
<p>#define COMMON_H_</p>
<p>&nbsp;</p>
<p>#include &lt;color.h&gt;</p>
<p>#include &lt;stdio.h&gt;</p>
<p>#include &lt;unistd.h&gt;</p>
<p>&nbsp;</p>
<p>#endif</p>
</div>
<p></p>
<fhead><strong>FILE:</strong> prog.c</fhead>
<div class="file">
<p>#include "common.h"</p>
<p>&nbsp;</p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("hello\n");
<p>}</p>
</div>
<p><strong>1.2</strong> Best Practices</p>
<ul>
<p><li>Avoid abbreviation and single letter variables.</li><p>
<p><li>Avoid deep nesting.</li></p>
</ul>
<h2>2 - Licensing</h2>
<p><strong>2.1</strong> Disclaimer</p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>This is not legal advice. If you are in doubt with licensing, please contact your lawyer.</p>
</div>
<p><strong>2.2</strong> Preferred Licenses</p>
<p>For all projects officially released under Everest, the GNU GPL family of licenses is preferred. It provides compatibility with all other existing Everest projects.</p>
<p>Most programs should be licensed under the standard GPL. For libraries, you might want to choose the LGPL, if you want to allow linking within proprietary programs. For web applications, always choose the AGPL.</p>
<p><strong>2.3</strong> Other Licenses</p>
<p>If you wish to use a non-GPL license for your project, that is perfectly permissible.</p>
<p>Before releasing your program, we ask that you add the following disclaimer to your README:</p>
<fhead><strong>FILE:</strong> README</fhead>
<div class="file">
<p>LICENSING DISCLAIMER:</p>
<p>This program is licensed under (LICENSE), and as such may be incompatible with other GPL-licensed Everest programs.</p>
<p>Please contact the program's maintainer if you have questions.</p>
</div>
<p>If you are an Everest developer and host a project on our Git server, but do not want it associated with Everest, please submit an electronically signed form stating the following:</p>
<fhead><strong>FILE:</strong> WAIVER</fhead>
<div class="file">
<p>Everest Linux Development Group hereby relinquishes all claims of ownership on program "foo" to developer "bar".
<p>Electronically signed by Foobar on 1/1/2024</p>
<p>Electronically signed by Everest Linux head developer on 1/1/2024</p>
</div>
<p><strong>2.3</strong> Proprietary Licenses</p>
<p>Programs hosted on our Git servers are never to be released under proprietary licenses.</p>
<p>Distributing obfuscated binaries (for instance, using <cil>shc</cil> to hide the contents of a shell script) is also not allowed.</p>
<p>There will be no further discussion.</p>
</div>
<footer>
<p>Page last updated 03/17/2025 @ 12:00</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p>
<p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer>

View File

@@ -4,22 +4,21 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title> <title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/everest.css"/> <link type="text/css" rel="stylesheet" href="../css/nord.css"/>
<link rel="icon" type="image/x-icon" href="../img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="../img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="../img/everest-k2.svg" alt="everest-logo"> <img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a> <a href="../index.html">Home</a>
<a href="../about.html">About</a> <a href="../about.html">About</a>
<a href="../install.html">Install</a> <a href="../install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a> <a href="../download.html">Downloads</a>
<a href="home.html">Docs</a> <a href="home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="../errata.html">Errata</a> <a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
@@ -28,6 +27,11 @@
Back to home Back to home
</button> </button>
<h2>General Recommendations</h2> <h2>General Recommendations</h2>
<notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>This page is outdated as of 9/17/2024</p>
<p>Reason: Glacier v4, esv rewrite, among others</p>
</div>
<p>This page will explain how to expand an Everest system from barebones to more usable.</p> <p>This page will explain how to expand an Everest system from barebones to more usable.</p>
<h2>1 - Administration</h2> <h2>1 - Administration</h2>
<p><strong>1.1 </strong>Users</p> <p><strong>1.1 </strong>Users</p>
@@ -48,15 +52,9 @@
<p>Glacier functions a lot like Gentoo's 'portage', and while 'glacier' is not as feature-rich, it should satisfy the needs of most users.</p> <p>Glacier functions a lot like Gentoo's 'portage', and while 'glacier' is not as feature-rich, it should satisfy the needs of most users.</p>
<p><strong>2.2 </strong>Repositories</p> <p><strong>2.2 </strong>Repositories</p>
<p>The 'GREPO' variable, defined in '/etc/glacier.conf', is where Glacier will download packages to. This is tied into your system profile, and should not be changed.</p> <p>The 'GREPO' variable, defined in '/etc/glacier.conf', is where Glacier will download packages to. This is tied into your system profile, and should not be changed.</p>
<p>There are 8 subcategories:</p> <p><strong>2.3 </strong>Packages</p>
<ol> <p>Everest does not provide many packages. Thus, it is up to the user to package their own software.</p>
<li>world - system software</li> <wikihead><strong>WIKI:</strong> <a href="intro-to-glacier.html">Introduction to Glacier</a></wikihead>
<li>galaxy - copyleft-licensed software</li>
<li>universe - permissive-licensed software</li>
<li>multiverse - proprietary (binary-redistributable or EULA) software</li>
<li>Testing counterparts</li>
</ol>
<p>In addition to the subcategory system, whitelisted licenses can be changed in '/etc/glacier.conf'.</p>
<h2>3 - Boot process</h2> <h2>3 - Boot process</h2>
<p><strong>3.1 </strong>Microcode</p> <p><strong>3.1 </strong>Microcode</p>
<p>All users of AMD and Intel CPUs should install their corresponding microcode update package.</p> <p>All users of AMD and Intel CPUs should install their corresponding microcode update package.</p>
@@ -113,7 +111,7 @@
<p>Page last updated 4/04/23 @ 13:34</p> <p>Page last updated 4/04/23 @ 13:34</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p> <p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p> <p>--------------------</p>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -4,28 +4,33 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title> <title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/everest.css"/> <link type="text/css" rel="stylesheet" href="../css/nord.css"/>
<link rel="icon" type="image/x-icon" href="../img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="../img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="../img/everest-k2.svg" alt="everest-logo"> <img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a> <a href="../index.html">Home</a>
<a href="../about.html">About</a> <a href="../about.html">About</a>
<a href="../install.html">Install</a> <a href="../install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a> <a href="../download.html">Downloads</a>
<a href="home.html">Docs</a> <a href="home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="../errata.html">Errata</a> <a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Docs</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>Docs</h2> <h2>Documentation Home</h2>
<p>Welcome to the Everest Linux documentation homepage.</p> <p><strong>Welcome to the Everest Linux documentation homepage!</strong></p>
<p>Pages listed here are frequently updated. If you wish to make a correction, or submit a new page, please contact me at liamwaldron@everestlinux.org.</p>
<script> <script>
function myFunction() { function myFunction() {
var input, filter, ul, li, a, i, txtValue; var input, filter, ul, li, a, i, txtValue;
@@ -47,13 +52,16 @@
</script> </script>
<input type="text" id="myInput" onKeyup="myFunction()" placeholder="Search documentation..."> <input type="text" id="myInput" onKeyup="myFunction()" placeholder="Search documentation...">
<ul id="myUL"> <ul id="myUL">
<li><a href="dev-docs.html">Developer Documentation</a></li>
<li><a href="general-recommendations.html">General Recommendations</a></li> <li><a href="general-recommendations.html">General Recommendations</a></li>
<li><a href="intro-to-glacier.html">Introduction to Glacier</a></li> <li><a href="intro-to-glacier.html">Introduction to Glacier</a></li>
<li><a href="libglacier.html">libglacier</a></li>
<li><a href="meta-reading.html">Meta: Reading Guide</a></li>
<li><a href="musl-or-glibc.html">musl or glibc?</a></li> <li><a href="musl-or-glibc.html">musl or glibc?</a></li>
</ul> </ul>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -4,22 +4,21 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title> <title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/everest.css"/> <link type="text/css" rel="stylesheet" href="../css/nord.css"/>
<link rel="icon" type="image/x-icon" href="../img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="../img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="../img/everest-k2.svg" alt="everest-logo"> <img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a> <a href="../index.html">Home</a>
<a href="../about.html">About</a> <a href="../about.html">About</a>
<a href="../install.html">Install</a> <a href="../install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a> <a href="../download.html">Downloads</a>
<a href="home.html">Docs</a> <a href="home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="../errata.html">Errata</a> <a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
@@ -27,120 +26,187 @@
<button onclick="window.location.href='home.html';"> <button onclick="window.location.href='home.html';">
Back to home Back to home
</button> </button>
<h2>Introduction</h2> <h2>1 - Introduction</h2>
<p>Glacier is the package management system for Glacier. All users should be familiar with how it works.</p> <p>Glacier is the package management system for Glacier. All users should be familiar with how it works.</p>
<h2>Terminology</h2> <h2>2 - Package Indexes</h2>
<p>In this case, the word 'merge' and 'install' mean the same thing.</p> <p>On an Everest system, packages are stored in an "index", of which there are two, the <i>system</i> index and the <i>user</i> index.</p>
<p>A package index is a list of all installed packages on any given Everest system.</p> <p>The system index is located in <cil>/glacier/index</cil>, and the user index is localed in <cil>/usr/glacier/index</cil>.</p>
<p>The local index is managed by all users on the system, and is located in /usr/glacier/index.</p> <p>When you merge a package from a repository, <cil>gpkg</cil> will retrieve the file, execute the relevant instruction sets, and store the package in the user index. <cil>syspkg</cil> will operate on the system index instead. On update, <cil>gpkg</cil> 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 <cil>/tmp</cil> oncde the removal instructions have been executed.</p>
<p>The global index is managed by Git, and is located in /glacier/index.</p> <h2>3 - Repositories</h2>
<p>A system profile describes your base system, including C library, architecture, SELinux support, multilib support, etc.</p> <p>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.</p>
<h2>Included programs</h2> <p>This presents some advantages:</p>
<ul>
<li><p>Package modifications can be done easily</p></li>
<li><p>In the result of connection loss, Glacier can still be used</p></li>
</ul>
<p>And also some disadvantages:</p>
<ul>
<li><p>Security risks may surface if the repository is not kept updated or an unauthorized party makes changes to packages</p></li>
</ul>
<p>The <cil>glacier-update-pkgdb</cil> 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.</p>
<h2>4 - The System Profile</h2>
<p>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.</p>
<p>The following environment variables are defined by the system profile:</p>
<ul>
<li><p><cil>GLACIER_REPO</cil> - The repository which will be downloaded by <cil>glacier-update-pkgdb</cil></p></li>
<li><p><cil>GLACIER_ARCH</cil> - The CPU's architecture</p></li>
<li><p><cil>GLACIER_TARGET</cil> - The compilation triplet</p></li>
<li><p><cil>GLACIER_SYSTEM_PROFILE</cil> - The name of the system profile</p></li>
</ul>
<p>The following system profiles are available:</p>
<ul>
<li><p><cil>x86_64-musl</cil></p></li>
</ul>
<p>The following system profiles are planned for the future:</p>
<ul>
<li><p><cil>x86_64-glibc</cil></p></li>
<li><p><cil>x86_64-musl-nomultilib</cil></p></li>
<li><p><cil>x86_64-glibc-nomultilib</cil></p></li>
</ul>
<h2>5 - Included programs</h2>
<p><strong>3.1 </strong>gpkg</p> <p><strong>3.1 </strong>gpkg</p>
<p>'gpkg' is the program most users will be interacting with. It handles the downloading, installation, and logging of packages.</p> <p><cil>gpkg</cil> is the program most users will be interacting with. It handles the downloading, installation, and logging of packages.</p>
<p><strong>3.2 </strong>syspkg</p> <p><strong>3.2 </strong>syspkg</p>
<p>'syspkg' is like 'gpkg', except it operates on the system index, rather than the local index. End users should not use this unless instructed to.</p> <p><cil>syspkg</cil> is like <cil>gpkg</cil>, except it operates on the system index, rather than the local index. End users should not use this unless instructed to.</p>
<p><strong>3.3 </strong>glist</p> <p><strong>3.3 </strong>glist</p>
<p>'glist' lists all installed packages, allowing the user to filter by name. <p><cil>glist</cil> lists all installed packages, allowing the user to filter by name.
<p><strong>3.4 </strong>gquery</p> <p><strong>3.4 </strong>gquery</p>
<p>'gquery' queries information on a package.</p> <p><cil>gquery</cil> queries information on a package.</p>
<p><strong>3.5 </strong>glacier-mkprofile</p> <p><strong>3.5 </strong>gpc</p>
<p>'glacier-mkprofile' makes changes to the system-wide profile. Users should not interact with this unless needed.</p> <p><cil>gpc</cil> checks if the syntax of a package is correct. This can be used to troubleshoot a package refusing to install, but is mainly intended for package developers.</p>
<h2>Frontends</h2> <p><strong>3.6 </strong>glacier-mkprofile</p>
<p><cil>glacier-mkprofile</cil> makes changes to the system-wide profile. Users should not interact with this unless needed.</p>
<p><strong>3.7 </strong>glacier-update-pkdgb</p>
<p><cil>glacier-update-pkgdb</cil> 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.</p>
<h2>6 - Frontends</h2>
<p>Frontends, or wrappers, may provide additional functionality to Glacier.</p> <p>Frontends, or wrappers, may provide additional functionality to Glacier.</p>
<warnhead><strong>WARNING:</strong></warnhead> <warnhead><strong>WARNING:</strong></warnhead>
<div class="warning"> <div class="warning">
<p>Third party frontends and wrapper scripts are not supported. Use them at your own risk.</p> <p>Third party frontends and wrapper scripts are not supported. Use them at your own risk.</p>
</div> </div>
<h2>Merging packages</h2> <h2>7 - Merging packages</h2>
<p><strong>4.1 </strong>Using gpkg</p> <p><strong>5.1 </strong>Using gpkg</p>
<p>To merge a package from a repository:</p> <p>To merge a package from a repository:</p>
<code>(root)# gpkg -f repo/pkg</code> <code>(root)# gpkg -f pkg</code>
<p>For instance, to install 'vim' in the 'world' repository:</p> <p>For instance, to install 'vim':</p>
<code>(root)# gpkg -f world/vim</code> <code>(root)# gpkg -f vim</code>
<p><strong>4.2 </strong>Using syspkg</p> <p><strong>5.2 </strong>Using syspkg</p>
<p>Using 'syspkg' is not recommended for end users because all changes to the global package index will be overwritten when pulling a new update.</p> <p>Using <cil>syspkg</cil> is not recommended for end users because all changes to the global package index will be overwritten when pulling a new update.</p>
<p>If you understand these risks, and wish to use 'syspkg' anyways, you are acknowledging that things may break.</p> <p>If you understand these risks, and wish to use <cil>syspkg</cil> anyways, you are acknowledging that things may break.</p>
<p>To merge a package from a repository:</p> <p>To merge a package:</p>
<code>(root)# syspkg -f repo/pkg</code> <code>(root)# syspkg -f pkg</code>
<h2>Updating packages</h2> <h2>8 - Updating packages</h2>
<p><strong>5.1 </strong>Introduction</p> <p><strong>6.1 </strong>Introduction</p>
<p>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'.</p> <p>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 <cil>pkgname.old</cil>.</p>
<p><strong>5.2 </strong>Using gpkg</p> <p><strong>6.2 </strong>Using gpkg</p>
<p>To update a package:</p> <p>To update a package:</p>
<code>(root)# gpkg -u repo/pkg</code> <code>(root)# gpkg -u pkg</code>
<p><strong>5.3 </strong>Using syspkg</p> <p><strong>6.3 </strong>Using syspkg</p>
<p>As mentioned above, 'syspkg' is intended for system development, and NOT for end users.</p> <p>As mentioned above, <cil>syspkg</cil> is intended for system development, and NOT for end users.</p>
<p>However, 'syspkg -u' has some use cases for end users. These include:</p> <p>However, <cil>syspkg -u</cil> has some use cases for end users. These include:</p>
<ul> <ul>
<li>Updating a system program WITHOUT pulling a new release from Git</li> <li>Updating a system program WITHOUT pulling a new release from Git</li>
<li>Fixing urgent security vulnerabilities</li> <li>Fixing urgent security vulnerabilities</li>
</ul> </ul>
<p>To update a package:</p> <p>To update a package:</p>
<code>(root)# syspkg -u repo/pkg</code> <code>(root)# syspkg -u pkg</code>
<h2>Removing packages</h2> <h2>9 - Removing packages</h2>
<p><strong>6.1 </strong>Introduction</p> <p><strong>7.1 </strong>Introduction</p>
<p>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.</p> <p>When removing a package, the package info file is moved from the appropriate index to /tmp, and saved as <cil>pkgname.rm</cil>. This means it will be wiped after the next reboot.</p>
<p><strong>6.2 </strong>Using gpkg</p> <p><strong>7.2 </strong>Using gpkg</p>
<p>To remove a package:</p> <p>To remove a package:</p>
<code>(root)# gpkg -x pkg</code> <code>(root)# gpkg -x pkg</code>
<p>Note that no repository name was provided. It is not required, as no files will be downloaded during the removal process.</p>
<p>If a package is a dependency for another, you will be shown the following error:</p> <p>If a package is a dependency for another, you will be shown the following error:</p>
<code>[x] Could not remove (package_name): is a dependency for (package_name)</code> <code>[x] Could not remove (package_name): is a dependency for (package_name)</code>
<p><strong>6.3 </strong>Using syspkg</p> <p><strong>7.3 </strong>Using syspkg</p>
<warnhead><strong>WARNING:</strong></warnhead> <warnhead><strong>WARNING:</strong></warnhead>
<div class="warning"> <div class="warning">
<p>Removing packages that shipped with the system images WILL cause catastrophic damage. You have been warned.</p> <p>Removing packages that shipped with the system images WILL cause catastrophic damage. You have been warned.</p>
</div> </div>
<p>If you wish to proceed anyways, you can remove a package with:</p> <p>If you wish to proceed anyways, you can remove a package with:</p>
<code>(root)# syspkg -x pkg</code> <code>(root)# syspkg -x pkg</code>
<h2>Advanced usage</h2> <h2>10 - Advanced usage</h2>
<p><strong>7.1 </strong>Patching packages</p> <p><strong>8.1 </strong>Patching packages</p>
<p>Patching packages is the act of editing a package file to change compile options, optimizations, etc. It is very useful if used correctly.</p> <p>Patching packages is the act of editing a package file to change compile options, optimizations, etc. It is very useful if used correctly.</p>
<p>The officially tested and verified method for patching is as follows:</p> <p>The officially tested and verified method for patching is as follows:</p>
<ul> <ul>
<li>Download the package file with 'gpkg -d'</li> <li>Download the package file with <cil>gpkg -d</cil></li>
<li>Edit the package file with a text editor of your choice</li> <li>Edit the package file with a text editor of your choice</li>
<li>Install the locally modified package with 'gpkg -fl pkg'</li> <li>Install the locally modified package with <cil>gpkg -fl pkg</cil></li>
</ul> </ul>
<p><strong>7.2 </strong>Custom package repository</p> <p><strong>8.2 </strong>Custom package repository</p>
<p>If Glacier's standard package repository is not sufficient, you can use a custom one.</p> <p>If Glacier's standard package repository is not sufficient, you can use a custom one.</p>
<warnhead><strong>WARNING:</strong></warnhead> <warnhead><strong>WARNING:</strong></warnhead>
<div class="warning"> <div class="warning">
<p>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'.</p> <p>Ensure the repository you wish to migrate to supports your system profile. For example, if your profile is <cil-inv>x86-musl</cil-inv>, the new repository should offer packages compatible with <cil-inv>x86-musl</cil-inv>.</p>
<p>Errors will occur if this is not taken into account.</p> <p>Errors will occur if this is not taken into account.</p>
</div> </div>
<p>To use a custom repository once, to merge a package:</p> <p>To use a custom repository once, to merge a package:</p>
<code>(root)# GREPO=http://some-repo.org gpkg -f repo/pkg</code> <code>(root)# GREPO=http://some-repo.org gpkg -f repo/pkg</code>
<p>To make the changes persistent, change the 'GREPO' variable in '/etc/glacier.conf':</p> <p>To make the changes persistent, change the <cil>GREPO</cil> variable in <cil>/etc/glacier.conf</cil>:</p>
<fhead><strong>FILE:</strong> /etc/glacier.conf</fhead> <fhead><strong>FILE:</strong> /etc/glacier.conf</fhead>
<div class="file"> <div class="file">
<p>GREPO="https://some-repo.org</p> <p>export GREPO="https://some-repo.org</p>
</div> </div>
<p><strong>7.3 </strong>Compile flags</p> <p><strong>8.3 </strong>Compile flags</p>
<p>When an operation is performed on a package, 'gpkg' invokes the system's C compiler, which can take flags for compilation.</p> <p>When an operation is performed on a package, 'gpkg' invokes the system's C compiler, which can take flags for compilation.</p>
<p>'MAKEFLAGS', 'CFLAGS', 'CXXFLAGS', and 'LDFLAGS' can be set in '/etc/make.conf'.</p> <p>'MAKEFLAGS', 'CFLAGS', 'CXXFLAGS', and 'LDFLAGS' can be set in '/etc/make.conf'.</p>
<p>It is highly recommended to keep '-static' in 'CFLAGS' and 'LDFLAGS'.</p> <p>It is highly recommended to keep '-static' in 'CFLAGS' and 'LDFLAGS'.</p>
<p><strong>7.4 </strong>Using syspkg</p> <p><strong>8.4 </strong>Using syspkg</p>
<p>'syspkg' is intended for development use and not for end users. That being said, 'syspkg' can be used for fixing security vulnerabilities without pulling in a new release from git.</p> <p>'syspkg' is intended for development use and not for end users. That being said, 'syspkg' can be used for fixing security vulnerabilities without pulling in a new release from git.</p>
<p>Note that all changes to the global package index ('/glacier/index') will be overwritten during an update, where the user invokes 'git pull' on '/'.</p> <p>Note that all changes to the global package index ('/glacier/index') will be overwritten during an update, where the user invokes 'git pull' on '/'.</p>
<p><strong>7.5 </strong>Whitelisting licenses</p> <p><strong>8.5 </strong>Whitelisting licenses</p>
<p>Certain license types can be whitelisted or blacklisted. This is useful for controlling which software is installed on your system.</p> <p>Certain license types can be whitelisted or blacklisted. This is useful for controlling which software is installed on your system.</p>
<h2>Querying packages</h2> <p>This setting is stored in /etc/glacier.conf, in a simple Bash array. By default, it should look something like this:</p>
<p><strong>8.1 </strong>Introduction</p> <fhead><strong>FILE:</strong> /etc/glacier.conf</fhead>
<div class="file">
<p>export GLACIER_ALLOWED_LICENSES=("GPL v3" "GPL v2" "GPL" "MIT" "BSD" "APACHE")</p>
</div>
<p><strong>8.6 </strong>Services</p>
<p>Glacier services are small programs that can do certain tasks within Glacier, such as updating the local package database.</p>
<p>Services must be enabled in /etc/glacier.conf before they can be used.</p>
<fhead><strong>FILE: </strong>/etc/glacier.conf</fhead>
<div class="file">
<p>export GLACIER_ALLOW_SERVICES="true"</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>Services can present a security risk to your system if not used properly. Ensure you review each service, its functions, and only use services made by users you trust.</p>
</div>
<p>Services can be configured to run at three different times: run (when an operation is started), pkg (when a package is installed), and end (when all pending operations have finished).</p>
<p>Create 3 files in /etc/glacier:</p>
<code>(root)# touch /etc/glacier/{call-srv,pkg-srv,end-srv}</code>
<p>There should be a directory in /etc/glacier containing service files. If not, create it now:</p>
<code>(root)# mkdir /etc/glacier/services</code>
<p>Now you can add services to the previously created files. For instance:</p>
<fhead><strong>FILE: </strong>/etc/glacier/end-srv</fhead>
<div class="file">
<p>#!/bin/bash</p>
<p>&nbsp;</p>
<p>GLACIER_SRV_DIR="/etc/glacier/services"</p>
<p>$GLACIER_SRV_DIR/update-pkgdb.hook</p>
</div>
<h2>11 - Querying packages</h2>
<p><strong>9.1 </strong>Introduction</p>
<p>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.</p> <p>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.</p>
<p><strong>8.2 </strong>Querying files</p> <p><strong>9.2 </strong>Querying files</p>
<p>All files belonging to a package can be listed with:</p> <p>All files belonging to a package can be listed with:</p>
<code>(user)$ gquery -f pkg</code> <code>(user)$ gquery -f pkg</code>
<p><strong>8.3 </strong>Querying info</p> <p><strong>9.3 </strong>Querying info</p>
<p>Package info can be listed with:</p> <p>Package info can be listed with:</p>
<code>(user)$ gquery -i pkg</code> <code>(user)$ gquery -i pkg</code>
<h2>Writing packages</h2> <h2>12 - Writing packages</h2>
<p><strong>9.1 </strong>Introduction</p> <notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>This section is outdated as of 9/17/2024</p>
<p>Reason: Glacier v4 changes the package format</p>
</div>
<p><strong>10.1 </strong>Introduction</p>
<p>As mentioned before, Glacier packages are simply text files. This makes them very easy to write and maintain.</p> <p>As mentioned before, Glacier packages are simply text files. This makes them very easy to write and maintain.</p>
<p>If you have previous experience writing PKGBUILDs for the AUR, writing Glacier packages should feel very similar.</p> <p>If you have previous experience writing PKGBUILDs for the AUR, writing Glacier packages should feel very similar.</p>
<p>In this page, 'nano' will be used as an example.</p> <p>In this page, 'nano' will be used as an example.</p>
<p><strong>9.2 </strong>Metadata</p> <p><strong>10.2 </strong>Metadata</p>
<p>Package files start with metadata, which tells Glacier who made the package, what its called, as well as other information.</p> <p>Package files start with metadata, which tells Glacier who made the package, what its called, as well as other information.</p>
<p>Double check that all of this information is correct before submitting a package.</p> <p>Double check that all of this information is correct before submitting a package.</p>
<fhead><strong>FILE:</strong> $(pwd)/nano</fhead> <fhead><strong>FILE:</strong> $(pwd)/nano</fhead>
@@ -155,7 +221,7 @@
</div> </div>
<p>Hopefully, most of these options are self explanatory.</p> <p>Hopefully, most of these options are self explanatory.</p>
<p>For INCLUDED_FILES, ensure you DON'T include documentation (manpages, etc).</p> <p>For INCLUDED_FILES, ensure you DON'T include documentation (manpages, etc).</p>
<p><strong>9.3 </strong>Integrity information</p> <p><strong>10.3 </strong>Integrity information</p>
<fhead><strong>FILE:</strong> $(pwd)/nano</fhead> <fhead><strong>FILE:</strong> $(pwd)/nano</fhead>
<div class="file"> <div class="file">
<p>SHA256SUMS="86f3442768bd2873cec693f83cdf80b4b444ad3cc14760b74361474fc87a4526"</p> <p>SHA256SUMS="86f3442768bd2873cec693f83cdf80b4b444ad3cc14760b74361474fc87a4526"</p>
@@ -163,7 +229,7 @@
<p>All packages must include their checksums. When merging a package, 'gpkg' will check the provided checksum against the actual checksum of the package, and if they don't match, the operation will be cancelled.</p> <p>All packages must include their checksums. When merging a package, 'gpkg' will check the provided checksum against the actual checksum of the package, and if they don't match, the operation will be cancelled.</p>
<p>To get the checksum of a package:</p> <p>To get the checksum of a package:</p>
<code>(user)$ sha256sum package</code> <code>(user)$ sha256sum package</code>
<p><strong>9.4 </strong>Dependency information</p> <p><strong>10.4 </strong>Dependency information</p>
<fhead><strong>FILE:</strong> $(pwd)/nano</fhead> <fhead><strong>FILE:</strong> $(pwd)/nano</fhead>
<div class="file"> <div class="file">
<p>DEPENDS=("")</p> <p>DEPENDS=("")</p>
@@ -171,7 +237,7 @@
</div> </div>
<p>Dependency information is extremely important. It allows 'gpkg' to install any dependencies. It also warns the user when a package conflicts with another.</p> <p>Dependency information is extremely important. It allows 'gpkg' to install any dependencies. It also warns the user when a package conflicts with another.</p>
<p>This should be fairly easy to figure out. Most projects will have this listed in their README. If you're the developer, you'll probably already know the dependencies your package requires.</p> <p>This should be fairly easy to figure out. Most projects will have this listed in their README. If you're the developer, you'll probably already know the dependencies your package requires.</p>
<p><strong>9.5 </strong>Source information</p> <p><strong>10.5 </strong>Source information</p>
<fhead><strong>FILE:</strong> $(pwd)/nano</fhead> <fhead><strong>FILE:</strong> $(pwd)/nano</fhead>
<div class="file"> <div class="file">
<p>PACKAGE_SRC="https://nano-editor.org/dist/v7/nano-7.2.tar.xz</p> <p>PACKAGE_SRC="https://nano-editor.org/dist/v7/nano-7.2.tar.xz</p>
@@ -195,10 +261,10 @@
<p>Anything prefixed with "system" refers to the use of 'syspkg'.</p> <p>Anything prefixed with "system" refers to the use of 'syspkg'.</p>
</div> </div>
<footer> <footer>
<p>Page last updated 4/04/23 @ 13:19</p> <p>Page last updated 9/17/24 @ 09:40</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p> <p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p> <p>--------------------</p>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

504
docs/libglacier.html Normal file
View File

@@ -0,0 +1,504 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head>
<body>
<!-- Navbar -->
<div class="sidenav">
<img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a>
<a href="../about.html">About</a>
<a href="../install.html">Install</a>
<a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a>
<a href="home.html">Docs</a>
<a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git ↗</a>
</div>
<!-- Rest of page -->
<div class="main">
<button onclick="window.location.href='home.html';">
Back to home
</button>
<h2>1 - Introduction</h2>
<p><cil>libglacier</cil> is the backend library for Glacier. It simplifies many functions and allows users to extend Glacier's functionality.</p>
<h2>2 - Installation</h2>
<p>In order to install <cil>libglacier</cil>, the following libraries must be installed:</p>
<ul>
<li><p>libcolor</p></li>
<li><p>libconfig</p></li>
</ul>
<p>Once these libraries are installed, clone the <cil>libglacier</cil> repository:</p>
<p><code>$ git clone https://git.everestlinux.org/EverestLinux/libglacier</code></p>
<p>Enter the repository and edit the make configuration file:</p>
<p><code>$ cd libglacier</code></p>
<p><code>$ ${EDITOR} config.mk</code></p>
<cautionhead><strong>CAUTION</strong></cautionhead>
<div class="caution">
<p>Before proceeding with ANY other step, make sure you define <cil_inv>PREFIX</cil_inv> in config.mk.</p>
<p>By default this variable is not defined. Results will be unexpected if the library is compiled without <cil_inv>PREFIX</cil_inv> defined.</p>
</div>
<p>Build the library:</p>
<p><code>$ make lib</code></p>
<notehead><strong>NOTE</strong></notehead>
<div class="note">
<p><cil_inv>libglacier</cil_inv> is provided as a static library only.</p>
<p>If you wish to compile a shared library instead, you must edit the Makefile</p>
</div>
<h2>3 - Using libglacier in a program</h2>
<p>To use <cil>libglacier</cil> in a program, include the relevant header files:</p>
<bigcodehead><strong>CODE:</strong> Including libglacier header files</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/config.h&gt;</p>
<p>#include &lt;glacier/data.h&gt;</p>
<p>#include &lt;glacier/log.h&gt;</p>
<p>#include &lt;glacier/pkgops.h&gt;</p>
<p>#include &lt;glacier/runtime.h&gt;</p>
<p>#include &lt;glacier/security.h&gt;</p>
</div>
<p></p>
<p>To compile <cil>libglacier</cil> into your program, add the flag <cil>-lglacier</cil> to your build process.</p>
<p><code>$ gcc program.c -lglacier -o program</code></p>
<p></p>
<h2>4 - Configuration Functions</h2>
<p><cil>libglacier</cil> supplies functions for parsing and getting values from libconfig-syntax configuration files. While only three are present, more are planned for the future.</p>
<p><strong>4.1</strong> init_config</p>
<p><cil>init_config</cil> initializes the libconfig library, and allows configuration files to be parsed.</p>
<p>No parameters are accepted by <cil>init_config</cil>.</p>
<bigcodehead><strong>CODE:</strong> init_config used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/config.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>if (init_config() != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("failed to initialize libconfig");</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span>else {</p>
<p><span class="tab"></span><span class="tab"></span>successlog("Initialized libconfig");</p>
<p><span class="tab"></span>}</p>
<p>}</p>
</div>
<p><cil>init_config</cil> returns 0 on success, and 1 on failure.</p>
<hr>
<p><strong>4.2</strong> die_config</p>
<p><cil>die_config</cil> unloads the libconfig library. You should always run this when you're finished with libconfig in order to free memory.</p>
<p>No parameters are accepted by <cil>die_config</cil>.</p>
<bigcodehead><strong>CODE:</strong> die_config used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/config.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>die_config();</p>
<p>}</p>
</div>
<p><cil>die_config</cil> returns 0 on success, and 1 on failure.</p>
<hr>
<p><strong>4.3</strong> load_all_from_config</p>
<p><cil>load_all_from_config</cil> loads all expected settings from /etc/glacier.cfg.</p>
<p>No parameters are accepted by <cil>load_all_from_config</cil>.</p>
<bigcodehead><strong>CODE:</strong> load_all_from_config used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/config.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>init_config();</p>
<p>}</p>
</div>
<p><cil>load_all_from_config</cil> returns 0 on success, and 1 on failure.</p>
<h2>5 - Data structure functions</h2>
<p>Since Glacier is a package manager, <cil>libglacier</cil> provides functions for creating and handling dependency trees.</p>
<p><strong>5.1</strong> create_node</p>
<p><cil>create_node</cil> creates a node for a dependency tree.</p>
<p><cil>create_node</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>char *data</cil> (the name of the node to create)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> create_node used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/data.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>struct node package = create_node("Package");</p>
<p>}</p>
</div>
<p><cil>create_node</cil> returns a node structure.</p>
<hr>
<p><strong>5.2</strong> add_child</p>
<p><cil>add_child</cil> adds a specified child node to a parent node.</p>
<p><cil>add_child</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>struct node *parent</cil> (the parent node which the child will be added to)</p></li>
<li><p><cil>struct node *child</cil> (the child node which will be added to the parent node)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> add_child used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/data.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>struct node pack = create_node("pack");
<p><span class="tab"></span>struct node dep1 = create_node("dep1");
<p><span class="tab"></span>add_child(pack, dep1);</p>
<p>}</p>
</div>
<p><cil>add_child</cil> returns 0 on success, and 1 on failure.</p>
<hr>
<p><strong>5.3</strong> print_tree</p>
<p><cil>print_tree</cil> prints a dependency tree specified at its root node.</p>
<p><cil>print_tree</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>struct node *root</cil> (the root node of the tree to print</p></li>
<li><p><cil>int level</cil> (the number of levels to descend)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> print_tree used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/data.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>struct node pack = create_node("pack");</p>
<p><span class="tab"></span>struct node dep1 = create_node("dep1");</p>
<p><span class="tab"></span>add_child(pack, dep1);</p>
<p><span class="tab"></span>print_tree(pack, 0);</p>
<p>}</p>
</div>
<p><cil>print_tree</cil> returns 0 on success.</p>
<hr>
<p><strong>5.4</strong> init_queue</p>
<p><cil>init_queue</cil> initializes a queue data structure.</p>
<notehead><strong>REMOVED FEATURE</strong></notehead>
<div class="note">
<p>The queue data structure was removed in a recent update (March 2025). This function is no longer available in the current version of libglacier.</p>
</div>
<p><cil>init_queue</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>queue *q</cil> (the name of the queue to initialize</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> init_queue used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/data.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>/* Queue implementation removed */</p>
<p>}</p>
</div>
<h2>6 - Logging Functions</h2>
<p>The logging functions <cil>libglacier</cil> provides are designed to allow a uniform style of output. </p>
<p>The following logging functions are included:</p>
<ul>
<li><p><cil>infolog</cil></p></li>
<li><p><cil>warnlog</cil></p></li>
<li><p><cil>errlog</cil></p></li>
<li><p><cil>successlog</cil></p></li>
</ul>
<p>These four functions accept the following parameters:</p>
<ul>
<li><p><cil>char MSG</cil> (the message to output</p></li>
</ul>
<p></p>
<notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>Logging functions do not require a newline character ('\n'), they will automatically place one after the message.</p>
</div>
<p></p>
<p>All logging functions return 0 on success, and 1 on failure.</p>
<bigcodehead><strong>CODE:</strong> Logging functions used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/log.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>infolog("This is an info message");</p>
<p><span class="tab"></span>warnlog("This is a warning message");</p>
<p><span class="tab"></span>errlog("This is an error message");</p>
<p><span class="tab"></span>successlog("This is a success message");</p>
<p>}</p>
</div>
<h2>7 - Package Operation Functions</h2>
<p>This section describes the numerous functions related to operations on packages.</p>
<p><strong>7.1</strong> mkworkspace</p>
<p><cil>mkworkspace</cil> creates a Glacier workspace at <cil>/tmp/glacier-workspace</cil>.</p>
<p><cil>mkworkspace</cil> accepts no parameters.</p>
<bigcodehead><strong>CODE:</strong> mkworkspace used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/pkgops.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>mkworkspace();</p>
<p>}</p>
</div>
<p><cil>mkworkspace</cil> returns the following values:</p>
<ul>
<li><p>0 on success</p></li>
<li><p>2 on library error</p></li>
</ul>
<p>Calling <cil>mkworkspace</cil> creates the workspace if it doesn't already exist.</p>
<hr>
<p><strong>7.2</strong> prepare_pkg</p>
<p><cil>prepare_pkg</cil> copies a package archive from the local package database to the workspace, and untars it.</p>
<p><cil>prepare_pkg</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>char PACKAGE[]</cil> (the package file to prepare)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> prepare_pkg used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/pkgops.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>prepare_pkg("/glacier/localdb/epkgs-x86_64-musl/foo.tar");</p>
<p>}</p>
</div>
<p><cil>prepare_pkg</cil> returns the following values:</p>
<ul>
<li><p>0 on success</p></li>
<li><p>1 on package does not exist, or error untarring</p></li>
</ul>
<cautionhead><strong>CAUTION:</strong></cautionhead>
<div class="caution">
<p>This example presented is not the best. Instead of manually specifying the package directory, you should be calling the system profile.</p>
</div>
<hr>
<p><strong>7.3</strong> run_make_task</p>
<p><cil>run_make_task</cil> runs a specified make task in a package's current working directory.</p>
<p><cil>run_make_task</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>char TASK[]</cil> (the make task to run</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> run_make_task used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/pkgops.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>prepare_pkg("/glacier/localdb/epkgs-x86_64-musl/foo.tar");</p>
<p><span class="tab"></span>run_make_task("installpkg");</p>
<p>}</p>
</div>
<p><cil>run_make_task</cil> returns the following values:</p>
<ul>
<li><p>0 on success</p></li>
<li><p>1 on failure</p></li>
</ul>
<h2>8 - Runtime Functions</h2>
<p>The functions described here are used for various runtime checks.</p>
<p><strong>8.1</strong> runtime_exists</p>
<p><cil>runtime_exists</cil> checks if necessary runtime files exist and are in their correct locations.</p>
<p><cil>runtime_exists</cil> accepts no parameters.</p>
<bigcodehead><strong>CODE:</strong> runtime_exists used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/runtime.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>runtime_exists();</p>
<p>}</p>
</div>
<p><cil>runtime_exists</cil> returns no values.</p>
<hr>
<p><strong>8.2</strong> is_process_root</p>
<p><cil>is_process_root</cil> verifies if the process has root privileges to perform package operations.</p>
<p><cil>is_process_root</cil> accepts no parameters.</p>
<bigcodehead><strong>CODE:</strong> is_process_root used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/runtime.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>if (is_process_root() != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("insufficient permissions to perform package operations");</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p>}</p>
</div>
<p><cil>is_process_root</cil> returns the following values:</p>
<ul>
<li><p>0 on sufficient permissions (process is root)</p></li>
<li><p>1 on insufficient permissions (process is not root)</p></li>
</ul>
<hr>
<p><strong>8.3</strong> get_system_profile</p>
<p><cil>get_system_profile</cil> fetches the system profile, which contains information about the architecture and libc implementation.</p>
<p><cil>get_system_profile</cil> accepts no parameters.</p>
<bigcodehead><strong>CODE:</strong> get_system_profile used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/runtime.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>char *profile = get_system_profile();</p>
<p><span class="tab"></span>infolog(profile);</p>
<p>}</p>
</div>
<p><cil>get_system_profile</cil> returns a pointer to a string containing the system profile (e.g., "x86_64-musl").</p>
<h2>9 - Security Functions</h2>
<p>These functions provide security checks for package integrity and signatures.</p>
<p><strong>9.1</strong> verify_signature</p>
<p><cil>verify_signature</cil> checks if a package's signature is valid against the trusted keyring.</p>
<notehead><strong>UPCOMING FEATURE</strong></notehead>
<div class="note">
<p>This function is planned for a future release and is not yet implemented in the current version of libglacier.</p>
</div>
<p><cil>verify_signature</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>char PACKAGE[]</cil> (the package file to verify)</p></li>
<li><p><cil>char SIGNATURE[]</cil> (the signature file to check against)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> verify_signature used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/security.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>if (verify_signature("package.tar", "package.tar.sig") != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("invalid package signature");</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span>return(EXIT_SUCCESS);</p>
<p>}</p>
</div>
<p><cil>verify_signature</cil> returns the following values:</p>
<ul>
<li><p>0 on valid signature</p></li>
<li><p>1 on invalid signature</p></li>
<li><p>2 on file not found</p></li>
</ul>
<hr>
<p><strong>9.2</strong> check_integrity</p>
<p><cil>check_integrity</cil> verifies a package's SHA256 checksum against the expected value.</p>
<notehead><strong>UPCOMING FEATURE</strong></notehead>
<div class="note">
<p>This function is planned for a future release and is not yet implemented in the current version of libglacier.</p>
<p>Note that the underlying functions for calculating file hashes (<cil_inv>hash_file()</cil_inv>, <cil_inv>stash_hash()</cil_inv>, <cil_inv>print_hash()</cil_inv>) are already implemented.</p>
</div>
<p><cil>check_integrity</cil> accepts the following parameters:</p>
<ul>
<li><p><cil>char PACKAGE[]</cil> (the package file to check)</p></li>
<li><p><cil>char EXPECTED_HASH[]</cil> (the expected SHA256 hash)</p></li>
</ul>
<bigcodehead><strong>CODE:</strong> check_integrity used in a program</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/security.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>char *expected = "d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592";</p>
<p><span class="tab"></span>if (check_integrity("package.tar", expected) != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("package integrity check failed");</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span>return(EXIT_SUCCESS);</p>
<p>}</p>
</div>
<p><cil>check_integrity</cil> returns the following values:</p>
<ul>
<li><p>0 on hash match</p></li>
<li><p>1 on hash mismatch</p></li>
<li><p>2 on file not found or hash calculation error</p></li>
</ul>
<h2>10 - Advanced Usage</h2>
<p>This section covers more advanced usage patterns for <cil>libglacier</cil>.</p>
<p><strong>10.1</strong> Custom dependency tree handling</p>
<p>While <cil>libglacier</cil> provides functions for creating and manipulating dependency trees, you might need to implement custom behaviors for resolving dependencies.</p>
<bigcodehead><strong>CODE:</strong> Custom dependency resolution</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/data.h&gt;</p>
<p>#include &lt;glacier/log.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>resolve_dependencies(struct node *root)</p>
<p>{</p>
<p><span class="tab"></span>/* Custom dependency resolution logic here */</p>
<p><span class="tab"></span>for (int i = 0; i < root->num_children; i++) {</p>
<p><span class="tab"></span><span class="tab"></span>infolog(root->children[i]->data);</p>
<p><span class="tab"></span><span class="tab"></span>/* Process child dependencies recursively */</p>
<p><span class="tab"></span><span class="tab"></span>resolve_dependencies(root->children[i]);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span>return(0);</p>
<p>}</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>struct node *root = create_node("base-package");</p>
<p><span class="tab"></span>struct node *dep1 = create_node("dependency1");</p>
<p><span class="tab"></span>struct node *dep2 = create_node("dependency2");</p>
<p><span class="tab"></span>add_child(root, dep1);</p>
<p><span class="tab"></span>add_child(root, dep2);</p>
<p><span class="tab"></span>resolve_dependencies(root);</p>
<p><span class="tab"></span>return(EXIT_SUCCESS);</p>
<p>}</p>
</div>
<hr>
<p><strong>10.2</strong> Error handling best practices</p>
<p>When using <cil>libglacier</cil>, it's important to implement proper error handling. All functions that return integer status codes should be checked.</p>
<bigcodehead><strong>CODE:</strong> Proper error handling</bigcodehead>
<div class="bigcode">
<p>#include &lt;glacier/config.h&gt;</p>
<p>#include &lt;glacier/log.h&gt;</p>
<p>#include &lt;glacier/pkgops.h&gt;</p>
<p><span class="tab"></span></p>
<p>int</p>
<p>main()</p>
<p>{</p>
<p><span class="tab"></span>/* Initialize configuration */</p>
<p><span class="tab"></span>if (init_config() != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("failed to initialize configuration");</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span></p>
<p><span class="tab"></span>/* Create workspace */</p>
<p><span class="tab"></span>if (mkworkspace() != 0) {</p>
<p><span class="tab"></span><span class="tab"></span>errlog("failed to create workspace");</p>
<p><span class="tab"></span><span class="tab"></span>die_config();</p>
<p><span class="tab"></span><span class="tab"></span>return(EXIT_FAILURE);</p>
<p><span class="tab"></span>}</p>
<p><span class="tab"></span></p>
<p><span class="tab"></span>/* Always clean up resources */</p>
<p><span class="tab"></span>die_config();</p>
<p><span class="tab"></span>return(EXIT_SUCCESS);</p>
<p>}</p>
</div>
<p></p>
<notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>Always free resources and clean up configurations when your program exits, even on error paths.</p>
<p>This prevents memory leaks and ensures consistent behavior.</p>
</div>
</div>
<footer>
<p>Page last updated 03/22/25 @ 15:45</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p>
<p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer>

100
docs/meta-reading.html Normal file
View File

@@ -0,0 +1,100 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head>
<body>
<!-- Navbar -->
<div class="sidenav">
<img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a>
<a href="../about.html">About</a>
<a href="../install.html">Install</a>
<a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a>
<a href="home.html">Docs</a>
<a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git ↗</a>
</div>
<!-- Rest of page -->
<div class="main">
<button onclick="window.location.href='home.html';">
Back to home
</button>
<h2>1 - Introduction</h2>
<p>Documentation for Everest is formatted in a specific way. This page explains how a page is formatted, and what certain things mean, in as much detail as possible.</p>
<h2>2 - Cards</h2>
<p><strong>2.1 </strong>Introduction</p>
<p>Most Everest documentation pages will contain some type of a "card". Put simply, these are small containers that contain file contents, kernel configurations, warnings, notes, etc. There are 6 types of cards:</p>
<p><strong>2.2 </strong>Note</p>
<p>This card is the most simple. It contains a note on a certain section. They are usually not required to read, but contain important information.</p>
<notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>This is an example of a note card.</p>
</div>
<p><strong>2.3 </strong>Caution</p>
<p>This card is one step up from a note. It contains important information, and should be read. However, it usually isn't urgent, or if it is, it contains things that most would consider common knowledge.</p>
<cautionhead><strong>CAUTION:</strong></cautionhead>
<div class="caution">
<p>This is an example of a caution card.</p>
</div>
<p><strong>2.4 </strong>Warning</p>
<p>This card is one of the most important. It contains extremely important information that, if not understood, could lead to system breakage, data loss, etc.</p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>This is an example of a warning card.</p>
</div>
<p><strong>2.5 </strong>File</p>
<p>This card contains the contents of a text file. It is usually used to show configuration files.</p>
<fhead><strong>FILE:</strong> example.txt</fhead>
<div class="file">
<p>This is an example of a file card.</p>
</div>
<p><strong>2.6 </strong>Kernel</p>
<p>This card contains a kernel configuration as seen in <cil>make menuconfig</cil>.</p>
<khead><strong>KERNEL:</strong> Enable module "example</khead>
<div class="kernel">
<p>This is an example of a kernel card.</p>
</div>
<p><strong>2.7 </strong>Bigcode</p>
<p>The <cil>code</cil> tag is typically used to denote commands the user should run. The <cil>bigcode</cil> card is meant for showing programs, usually Bash or Python scripts, or C programs.</p>
<bigcodehead><strong>CODE:</strong> example.c</bigcodehead>
<div class="bigcode">
<p>This is an example of a bigcode card.</p>
</div>
<p><strong>2.8 </strong>News</p>
<p>This card is meant for sharing news about the distribution. It is only found on the homepage.</p>
<newshead><strong>1/1/70 - Example</strong></newshead>
<div class="news">
<p>This is an example of a news card.</p>
</div>
<h2>3 - Page Structure</h2>
<p>Everest documentation pages are organized into:</p>
<ul>
<li><a>Chapters</a></li>
<li><a>Sections</a></li>
<li><a>Subsections</a></li>
</ul>
<p><strong>3.1</strong> Chapters</p>
<p>Chapters are typically the largest sections on a given page. The topics they cover are very broad. Each chapter contains its own sections.</p>
<p>A chapter header is large, bold, has a colored sidebar, and is denoted by its number.</p>
<p><strong>3.2</strong> Sections</p>
<p>Sections are nested within chapters, and typically pertain to more specific topics related to a chapter.</p>
<p>A section header is bold, and is denoted by the number of the chapter it is nested under, followed by that section's number.</p>
<p><strong>3.3</strong> Subsections</p>
<p>Subsections are nested within sections, and usually contain very specific topics pertaining to a section (and chapter at large). Sometimes, a page does not use subsections at all.</p>
<p>A subsection header is italic, and is denoted by the number of the chapter it is nested under, followed by the number of the section it is nested under, followed by that subsection's number.</p>
</div>
<footer>
<p>Page last updated 1/08/2024 @ 17:28</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p>
<p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer>

View File

@@ -4,21 +4,20 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title> <title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/everest.css"/> <link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="../img/everest-k2.svg" alt="everest-logo"> <img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a> <a href="../index.html">Home</a>
<a href="../about.html">About</a> <a href="../about.html">About</a>
<a href="../install.html">Install</a> <a href="../install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a> <a href="../download.html">Downloads</a>
<a href="home.html">Docs</a> <a href="home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="../errata.html">Errata</a> <a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
@@ -69,15 +68,43 @@
<code>(root)# chroot --userspec=0:0 your-chroot /bin/sh</code> <code>(root)# chroot --userspec=0:0 your-chroot /bin/sh</code>
<h2>2 - Glibc</h2> <h2>2 - Glibc</h2>
<p><strong>2.1 </strong>Pros</p> <p><strong>2.1 </strong>Pros</p>
<p>Glibc supports most programs on linux, including proprietary ones.</p> <p>Glibc is the de-facto standard C library in Linux, and as a result supports most programs, including proprietary ones.</p>
<p><strong>2.1 </strong>Cons</p> <p><strong>2.2 </strong>Cons</p>
<p>Glibc is very bloated and heavy on resources for what it does.</p> <p>Glibc is very bloated and heavy on resources for what it does.</p>
<p><strong>2.3 </strong>Who should use Glibc</p>
<p>Users who wish to use proprietary programs, play Steam games, or have hardware that is incompatible with musl should use Glibc.</p>
<p><strong>2.4 </strong>Who shouldn't use Glibc</p>
<p>Users running an embedded, or otherwise resource-constrained system should not use Glibc.</p>
<h2>3 - Migrating</h2>
<p><strong>3.1 </strong>Prerequisites</p>
<p>Changing the C library on an existing Everest system is known as migrating.</p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>Migration requires rebuilding most, if not all of the system. It may also present other issues. Continue at your own risk.</p>
</div>
<p><strong>3.2 </strong>Preparations</p>
<p>First, change the system profile, corresponding to the C library you are switching to:</p>
<code>(root)# glacier-mkprofile -u <i>SYSTEM_PROFILE</i></code>
<p>Next, update the local package database:</p>
<code>(root)# glacier-update-pkgdb</code>
<p>Finally, change branches on / and pull in the new files:</p>
<code>(user)$ cd /</code>
<p></p>
<code>(root)# git checkout <i>SYSTEM_PROFILE</i></code>
<p></p>
<code>(root)# git pull</code>
<p></p>
<warnhead><strong>WARNING</strong></warnhead>
<div class="warning">
<p>Pulling in a new root filesystem requires a substantial amount of time. Ensure your system continuously stays connected to the network and doesn't loose power.</p>
<p>Your system may become corrupted if something interrupts this process.</p>
</div>
</div> </div>
<footer> <footer>
<p>Page last updated 5/19/23 @ 14:56</p> <p>Page last updated 6/17/23 @ 20:16</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p> <p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p> <p>--------------------</p>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

62
docs/recovery.html Normal file
View File

@@ -0,0 +1,62 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head>
<body>
<!-- Navbar -->
<div class="sidenav">
<img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a>
<a href="../about.html">About</a>
<a href="../install.html">Install</a>
<a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a>
<a href="home.html">Docs</a>
<a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git ↗</a>
</div>
<!-- Rest of page -->
<div class="main">
<button onclick="window.location.href='home.html';">
Back to home
</button>
<h2>Recovery</h2>
<p>System security is very important, however there are times when a system becomes so secure that the owner of the system becomes locked out of their own computer. There are a couple different methods for recovering a locked system.</p>
<h2>1 - Issues</h2>
<p><strong>1.1</strong> Issues resulting in a locked system</p>
<p>There are many things which may lock someone out of their system. The most notable ones are:</p>
<ul>
<li>Forgotten root password</li>
<li>Problematic PAM configuration</li>
</ul>
<p>There are two methods for recovering a system locked out by these issues, one of which should be set up by default.</p>
<h2>2 - Rescue Partition</h2>
<p><strong>2.1</strong> Introduction</p>
<p>Everest includes a small rescue partition in its system images, which contains only what is necessary to recover a system. Using this partition, system recovery is a relatively easy task.</p>
<p><strong>2.2</strong> Booting</p>
<p>While installing, either GRUB automatically created a boot entry for the rescue partition, or you did it yourself. If not, the rescue partition is unusable for recovery.</p>
<p>To boot into the rescue partition, power off your system, and select <cil>Everest Linux (rescue)</cil> in the GRUB boot menu.</p>
<h2>3 - Using BASH as init</h2>
<p><strong>3.1</strong> Introduction</p>
<p>The Linux kernel supports setting a custom init using kernel parameters. In this instance, we will use <cil>bash</cil> as our init to recover a locked system.</p>
<p><strong>3.2</strong> Booting</p>
<p>Power off your system. While booting, edit your boot entry's kernel parameters. On GRUB, this can be done with the <cil>e</cil> key.</p>
<p>Add the following to your kernel parameters:</p>
<khead><strong>KERNEL:</strong> Required kernel parameters to use BASH as init</khead>
<div class="kernel">
<p>init="/bin/bash"</p>
</div>
</div>
<footer>
<p>Page last updated MM/DD/YY @ HH:MM</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p>
<p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer>

View File

@@ -4,21 +4,20 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Docs</title> <title>Everest Linux - Docs</title>
<link type="text/css" rel="stylesheet" href="../css/everest.css"/> <link type="text/css" rel="stylesheet" href="../css/nord.css"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="../img/everest-k2.svg" alt="everest-logo"> <img src="../img/everest-nord.svg" alt="everest-logo">
<a href="../index.html">Home</a> <a href="../index.html">Home</a>
<a href="../about.html">About</a> <a href="../about.html">About</a>
<a href="../install.html">Install</a> <a href="../install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="../packages.html">Packages</a>
<a href="../download.html">Downloads</a> <a href="../download.html">Downloads</a>
<a href="home.html">Docs</a> <a href="home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="../errata.html">Errata</a> <a href="../errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
@@ -31,7 +30,7 @@
<p>Page last updated MM/DD/YY @ HH:MM</p> <p>Page last updated MM/DD/YY @ HH:MM</p>
<p>Page licensed under GNU Free Documentation License 1.3 or later</p> <p>Page licensed under GNU Free Documentation License 1.3 or later</p>
<p>--------------------</p> <p>--------------------</p>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -4,25 +4,29 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Downloads</title> <title>Everest Linux - Downloads</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
<link rel="icon" type="image/x-icon" href="img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Download</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>Download Everest</h2> <h2>Download Everest</h2>
<p>Most users will want to get the most recent release. If for some reason you require an older release, it may be in the release archive, which contains all deprecated releases.</p> <p>Most users will want to get the most recent release. If for some reason you require an older release, it may be in the release archive, which contains all deprecated releases.</p>
@@ -34,15 +38,18 @@
Download Download
</button> </button>
<h2>BitTorrent</h2> <h2>BitTorrent</h2>
<p>In some regions, using BitTorrent is illegal. Please ensure accessing BitTorrent is safe to do.</p> <warnhead><strong>WARNING:</strong></warnhead>
<p>Everest Linux assumes no responsibility for unauthorized BitTorrent access. <strong>YOU HAVE BEEN WARNED.</strong></p> <div class="warning">
<p>The use of BitTorrent is illegal in some regions. Please ensure you are abiding by local jurisdiction when accessing BitTorrent.</p>
<p>Everest Linux assumes no responsibility for illegal BitTorrent access.</p>
</div>
<p>If using a web seed capable client, please leave it open once finished, in order to seed back.</p> <p>If using a web seed capable client, please leave it open once finished, in order to seed back.</p>
<h2>wget</h2> <h2>wget</h2>
<p>If you want to quickly download a system image, you can use wget.</p> <p>If you want to quickly download a system image, you can use wget.</p>
<code>(user)$ wget https://git.everestlinux.org/EverestLinux/everest/raw/branch/main/releases/SYSTEM_IMAGE</code> <code>(user)$ wget https://git.everestlinux.org/EverestLinux/everest/raw/branch/main/releases/SYSTEM_IMAGE</code>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -4,34 +4,38 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Errata</title> <title>Everest Linux - Errata</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
<link rel="icon" type="image/x-icon" href="img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Errata</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>Errata</h2> <h2>Errata and Security Advisories</h2>
<p>This page will be periodically updated with security advisories, and instructions for fixing them.</p> <p>This page will be periodically updated with security advisories, and instructions for fixing them.</p>
<p>No advisories to report.</p> <p>No advisories to report.</p>
<p>Last updated: March 31st 2023</p> <p>Last updated: March 31st 2023</p>
<p>Contact security@everestlinux.org to report an issue</p> <p>Contact security@everestlinux.org to report an issue</p>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

BIN
img/banner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

BIN
img/everest-nord.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

1
img/everest-nord.svg Normal file
View File

@@ -0,0 +1 @@
<svg version="1.1" viewBox="0.0 0.0 649.0 485.0" fill="none" stroke="none" stroke-linecap="square" stroke-miterlimit="10" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2000/svg"><clipPath id="p.0"><path d="m0 0l649.0 0l0 485.0l-649.0 0l0 -485.0z" clip-rule="nonzero"/></clipPath><g clip-path="url(#p.0)"><path fill="#000000" fill-opacity="0.0" d="m0 0l649.0 0l0 485.0l-649.0 0z" fill-rule="evenodd"/><path fill="#88c0d0" d="m31.519686 468.3622l194.38202 -378.26773l133.83844 378.26773z" fill-rule="evenodd"/><path stroke="#88c0d0" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m31.519686 468.3622l194.38202 -378.26773l133.83844 378.26773z" fill-rule="evenodd"/><path fill="#5e81ac" d="m412.7575 222.75516l-135.9685 261.5433l-135.9685 -261.5433z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m412.7575 222.75516l-135.9685 261.5433l-135.9685 -261.5433z" fill-rule="evenodd"/><path fill="#666666" d="m276.48984 484.30145l135.9685 -261.5433l135.96854 261.5433z" fill-rule="evenodd"/><path stroke="#666666" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m276.48984 484.30145l135.9685 -261.5433l135.96854 261.5433z" fill-rule="evenodd"/><path fill="#5e81ac" d="m0 484.29922l130.77936 -246.89764l98.44899 246.89764z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m0 484.29922l130.77936 -246.89764l98.44899 246.89764z" fill-rule="evenodd"/><path fill="#5e81ac" d="m276.4908 484.3176l185.43307 -378.26773l185.43304 378.26773z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m276.4908 484.3176l185.43307 -378.26773l185.43304 378.26773z" fill-rule="evenodd"/><path fill="#88c0d0" d="m205.22047 134.99213l71.574814 -134.99213l71.5748 134.99213z" fill-rule="evenodd"/><path stroke="#88c0d0" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m205.22047 134.99213l71.574814 -134.99213l71.5748 134.99213z" fill-rule="evenodd"/><path fill="#5e81ac" d="m140.82677 222.7559l70.13112 -134.99213l131.67477 0l70.131134 134.99213z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="2.0" stroke-linejoin="round" stroke-linecap="butt" d="m140.82677 222.7559l70.13112 -134.99213l131.67477 0l70.131134 134.99213z" fill-rule="evenodd"/><path fill="#5e81ac" d="m205.21523 99.13386l30.761414 -63.27559l112.3882 63.27559z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m205.21523 99.13386l30.761414 -63.27559l112.3882 63.27559z" fill-rule="evenodd"/><path fill="#5e81ac" d="m205.22047 199.58267l195.68504 0l0 110.77167l-195.68504 0z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m205.22047 199.58267l195.68504 0l0 110.77167l-195.68504 0z" fill-rule="evenodd"/><path fill="#5e81ac" d="m385.25198 283.9475l-106.83533 198.3937l-97.82611 -198.3937z" fill-rule="evenodd"/><path stroke="#5e81ac" stroke-width="1.0" stroke-linejoin="round" stroke-linecap="butt" d="m385.25198 283.9475l-106.83533 198.3937l-97.82611 -198.3937z" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -4,98 +4,190 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Home</title> <title>Everest Linux - Home</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
<link rel="icon" type="image/x-icon" href="img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Home</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>Everest Linux</h2> <h2>Everest Linux</h2>
<p>A highly flexible, general purpose meta-distribution, built off of the monolithic Linux kernel and Glacier package manager.</p> <p>A highly flexible, general purpose meta-distribution, built off of the monolithic Linux kernel and Glacier package manager.</p>
<h2>Why Everest?</h2> <h2>Advantages of Everest</h2>
<strong>Simple: </strong><p>Everest strives to be simple by design, coming with no pre-installed bloatware or spyware. Everest follows the UNIX philosophy whenever possible,</p> <strong>Simple: </strong><p>Everest strives to be simple by design, coming with no pre-installed bloatware or spyware. Everest follows the UNIX philosophy whenever possible, and tries to avoid including large programs in its base system.</p>
<p>and tries to avoid including large programs in its base system.</p>
<strong>Stable: </strong><p>Everest is designed to be as stable as possible. All base system programs are statically linked, and can be updated with git-controlled root filesystems.</p> <strong>Stable: </strong><p>Everest is designed to be as stable as possible. All base system programs are statically linked, and can be updated with git-controlled root filesystems.</p>
<strong>Fast: </strong><p>Glacier downloads program source code and compiles it locally on your system. The end result is an extremely fast and optimized package. Simply define</p> <strong>Fast: </strong><p>Glacier downloads program source code and compiles it locally on your system. The end result is an extremely fast and optimized package. Simply define CFLAGS, CXXFLAGS, and MAKEFLAGS, and you're ready to go.</p>
<p>CFLAGS, CXXFLAGS, and MAKEFLAGS, and you're ready to go.</p>
<strong>Lightweight: </strong><p>Everest uses Busybox for its userland tools and init system, and musl for its standard C library. All of these tools are designed to be as lightweight as possible.</p> <strong>Lightweight: </strong><p>Everest uses Busybox for its userland tools and init system, and musl for its standard C library. All of these tools are designed to be as lightweight as possible.</p>
<strong>Flexible: </strong><p>Everest supports highly customized installations. Want to replace Busybox init with systemd, openrc, runit, dinit, or s6? Or replace musl with uClibc or Glibc? All of these are</p> <strong>Flexible: </strong><p>Everest supports highly customized installations. Want to replace Busybox init with systemd, openrc, runit, dinit, or s6? Or replace musl with uClibc or Glibc? All of these are possible, and encouraged.</p>
<p>possible, and encouraged.</p> <h2>Try Everest</h2>
<h2>Ready to try Everest?</h2> <button onclick="window.location.href='install.html';">
<p><a href="install.html">Read the installation guide here.</a></p> Installation Guide
</button>
<h2>News</h2> <h2>News</h2>
<newshead><strong>10/3/24 - libglacier v4.0.0rc out now</strong></newshead>
<div class="news">
<p>After 8 months of development, libglacier has been released as v4.0.0rc.</p>
<p>While this is technically an unstable development release, it has been tested vigorously and is only labeled as unstable due to the absence of configuration file parsing, which will be added in the next release.</p>
<p>This release means that progress on Glacier's frontend programs can finally progress.</p>
</div>
<hr>
<p></p>
<newshead><strong>7/12/24 - Registration closed for git.everestlinux.org</strong></newshead>
<div class="news">
<p>Due to an influx of spam on our Git server, new account registration has been closed.</p>
<p>If, for any reason, you require an account, please email me at liamwaldron@everestlinux.org so I can set one up for you.</p>
</div>
<hr>
<p></p>
<newshead><strong>4/4/24 - All new releases on hold indefinitely</strong></newshead>
<div class="news">
<p>While work has been done on releasing Everest and Glacier, these releases are on hold indefinitely.</p>
<p>I have decided to rewrite Glacier in C, which has added a significant amount of time needed for the release. This will ultimately be a good decision, since the rewritten Glacier will be much more portable than the Bash version.</p>
<p>Additionally, I have recently committed to Assumption University to study cybersecurity. Hopefully I will be able to integrate this project into my studies if possible.</p>
<p>Ultimately, this is a hobby project. I do not anticipate it to ever become big (or at least as big as some other distros), however if you are interested in helping out, shoot me a message at liamwaldron@everestlinux.org.</p>
</div>
<hr>
<p></p>
<newshead><strong>12/20/23 - Everest v1.0.0 and Glacier v4.0.0 put on hold</strong></newshead>
<div class="news">
<p>Unfortunately, the releases scheduled for January 1st are being put on hold.</p>
<p>The past few months have been very busy in terms of college stuff. Thankfully, I have been accepted into multiple schools and have a good idea of where I'm going.</p>
<p>Since this stuff is clearing up, I now have more time to work on releasing Everest and Glacier. Most importantly, I now have a testbed to run everything on.</p>
<p>The new target release date is March 1st, 2024.</p>
<p>Once again, thank you for your continued support of this project.</p>
</div>
<hr>
<p></p>
<newshead><strong>9/29/23 - Big news at Everest</strong></newshead>
<div class="news">
<p>Many things have been happening at Everest in the past few months.</p>
<p>Glacier v4 is almost complete, and is due for a release sometime before 2024.</p>
<p>Everest v1.0 is nearing its completion as well, and should be released before 2024.</p>
<p>We do not expect these dates to change, but if we need to polish things up more, we'll take that opportunity.</p>
<p>Finally, all Everest websites have transitioned to the nord colorscheme. We may bring back the k2 colorscheme at a later date.</p>
<p>Thank you for your continued support everyone!</p>
<p>-The Everest Team</p>
</div>
<hr>
<p></p>
<newshead><strong>6/8/23 - New Everest logo</strong></newshead>
<div class="news">
<p>The Everest logo has been slightly redesigned. This includes a darker color palette.</p>
</div>
<hr>
<p></p>
<newshead><strong>4/25/23 - Announcing Glacier v4</strong></newshead> <newshead><strong>4/25/23 - Announcing Glacier v4</strong></newshead>
<div class="news"> <div class="news">
<p>Glacier v4 is another complete overhaul of Glacier. This new release includes dependency resolution, multiple downloads, and a new, concise package format.</p> <p>Glacier v4 is another complete overhaul of Glacier. This new release includes dependency resolution, multiple downloads, and a new, concise package format.</p>
<p>Since Glacier v4 uses a completely different package format, it is thus <strong>incompatible</strong> with all previous releases.</p> <p>Since Glacier v4 uses a completely different package format, it is thus <strong>incompatible</strong> with all previous releases.</p>
<p>No time estimate has been given for this release.</p> <p>No time estimate has been given for this release.</p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>Glacier v4 is highly unstable and experimental. Use at your own risk.</p>
</div> </div>
</div>
<hr>
<p></p> <p></p>
<newshead><strong>2/1/23 - Manual intervention required for /etc/glacier.conf</strong></newshead> <newshead><strong>2/1/23 - Manual intervention required for /etc/glacier.conf</strong></newshead>
<div class="news"> <div class="news">
<p>With the new Glacier update, changes were made to the download backend. Please ensure your current configuration is overwritten while updating.</p> <p>With the new Glacier update, changes were made to the download backend. Please ensure your current configuration is overwritten while updating.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>1/26/23 - Website overhaul</strong></newshead> <newshead><strong>1/26/23 - Website overhaul</strong></newshead>
<div class="news"> <div class="news">
<p>The Everest website has been completely overhauled with a cleaner, sleeker look.</p> <p>The Everest website has been completely overhauled with a cleaner, sleeker look.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>1/26/23 - System image builds nearly complete</strong></newshead> <newshead><strong>1/26/23 - System image builds nearly complete</strong></newshead>
<div class="news"> <div class="news">
<p>A system image is coming together. This includes the toolchain We are still ironing out issues with Busybox's wget implementation, which fails to support https.</p> <p>A system image is coming together. This includes the toolchain We are still ironing out issues with Busybox's wget implementation, which fails to support https.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>11/1/22 - System image builts have begun</strong></newshead> <newshead><strong>11/1/22 - System image builds have begun</strong></newshead>
<div class="news"> <div class="news">
<p>Today, the team has begun compiling system images. All programs have compiled correctly, with the exception of the system toolchain. This is a very important component, and the system cannot function without it.</p> <p>Today, the team has begun compiling system images. All programs have compiled correctly, with the exception of the system toolchain. This is a very important component, and the system cannot function without it.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>10/25/22 - Glacier v3 is released</strong></newshead> <newshead><strong>10/25/22 - Glacier v3 is released</strong></newshead>
<div class="news"> <div class="news">
<p>After nearly 2 months of hard work, Glacier v3 is finally out. This release includes many stability improvements,</p> <p>After nearly 2 months of hard work, Glacier v3 is finally out. This release includes many stability improvements, changes to the codebase to improve readability, and a new build system.</p>
<p>changes to the codebase to improve readability, and a new build system.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>10/7/22 - Glacier v3 enters testing</strong></newshead> <newshead><strong>10/7/22 - Glacier v3 enters testing</strong></newshead>
<div class="news"> <div class="news">
<p>Glacier v3 is now available for testing. Please note that this release is not stable and therefore should not be run on a production machine.</p> <p>Glacier v3 is now available for testing. Please note that this release is not stable and therefore should not be run on a production machine.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>8/31/22 - Announcing Glacier v3</strong></newshead> <newshead><strong>8/31/22 - Announcing Glacier v3</strong></newshead>
<div class="news"> <div class="news">
<p>Glacier v2, which was release back in June, functions great, however does not function like a typical package manager would.</p> <p>Glacier v2, which was release back in June, functions great, however does not function like a typical package manager would.</p>
<p>Additionally, adding functionality is very difficult as the codebase is very complex and messy. Glacier v3 aims to fix these issues.</p> <p>Additionally, adding functionality is very difficult as the codebase is very complex and messy. Glacier v3 aims to fix these issues.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>6/21/22 - Registering everestlinux.org</strong></newshead> <newshead><strong>6/21/22 - Registering everestlinux.org</strong></newshead>
<div class="news"> <div class="news">
<p>Everest now owns a domain. This allows us to host our own website, rather than using GitHub (which is owned by Microsoft). This gives</p> <p>Everest now owns a domain. This allows us to host our own website, rather than using GitHub (which is owned by Microsoft). This gives us more control over our work.</p>
<p>us more control over our work.</p>
</div> </div>
<hr>
<p></p> <p></p>
<newshead><strong>5/31/22 - Glacier v2 is released</strong></newshead> <newshead><strong>5/31/22 - Glacier v2 is released</strong></newshead>
<div class="news"> <div class="news">
<p>Glacier v2 has been released. This version provides several improvements to the codebase, such as compressing everything to a single executable,</p> <p>Glacier v2 has been released. This version provides several improvements to the codebase, such as condensing everything to a single executable.</p>
<p>and removing the whole "enter package name" scheme.</p> </div>
<hr>
<p></p>
<newshead><strong>4/20/22 - Glacier v1 is released</strong></newshead>
<div class="news">
<p>Glacier has released a stable point in its development.</p>
<p>In addition, color and unicode support has been added.</p>
</div>
<hr>
<p></p>
<newshead><strong>4/5/22 - Glacier v0.6rc</strong></newshead>
<div class="news">
<p>The package format has been updated to include timestamping capabilities.</p>
<p>These timestamps will be queried along with a package.</p>
</div>
<hr>
<p></p>
<newshead><strong>3/28/22 - Glacier v0.5rc</strong></newshead>
<div class="news">
<p>Added a proper cleanup operation after a transaction finishes.</p>
<p>Additionally, caching support has been added.</p>
</div>
<hr>
<p></p>
<newshead><strong>3/10/22 - Glacier v0.2rc</strong></newshead>
<div class="news">
<p>Added proper error handling.</p>
</div> </div>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

View File

@@ -4,46 +4,38 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Install</title> <title>Everest Linux - Install</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
<link rel="icon" type="image/x-icon" href="img/favicon.svg"/> <link rel="icon" type="image/x-icon" href="img/favicon.svg"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Install</h1>
</div>
</div>
<div class="main"> <div class="main">
<h2>Installation Handbook</h2> <h2>Installation Handbook</h2>
<p>This guide is the official installation handbook for Everest Linux.</p> <p>This guide is the official installation handbook for Everest Linux.</p>
<warnhead><strong>WARNING:</strong></warnhead> <warnhead><strong>PRELIMINARY WARNINGS:</strong></warnhead>
<div class="warning"> <div class="warning">
<p>Using unofficial guides is not recommended, as they may be outdated, or unreliable. The official guide is located at https://www.everestlinux.org/install.</p> <p><strong>WARNING 1:</strong> Using unofficial guides is not recommended, as they may be outdated, or unreliable. The official guide is located at https://www.everestlinux.org/install.</p>
</div> <p><strong>WARNING 2:</strong> Simply copy and pasting commands from this guide won't cut it, and you'll likely end up with a broken installation. Ensure you know what each command does, and how to tailor it to your system, if necessary.</p>
<p></p> <p><strong>WARNING 3:</strong> Everest is not for the faint of heart. There is absolutely no hand holding provided, you are on your own. If you have never touched Linux in your life, Everest is most certainly not for you. There are many distributions which provide a much better user experience for those new to Linux, we personally recommend Linux Mint.</p>
<warnhead><strong>WARNING:</strong></warnhead> <p><strong>WARNING 4:</strong> Everest in its current state is highly experimental. Install at your own risk.</p>
<div class="warning">
<p>Simply copy and pasting commands from this guide won't cut it, and you'll most likely end up with a broken installation. Ensure you know what each command does.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>Everest is not for the faint of heart. If you have never touched Linux in your life, Everest is most certainly not for you. Check out https://linuxmint.com if you want a great Linux experience that works out of the box.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead>
<div class="warning">
<p>Everest at its current state is highly experimental. Install at your own risk.</p>
</div> </div>
<p>If you need assistance, reach out to us on IRC (libera.chat, #everestlinux) or Discord.</p> <p>If you need assistance, reach out to us on IRC (libera.chat, #everestlinux) or Discord.</p>
<h2>Prerequisites</h2> <h2>Prerequisites</h2>
@@ -53,6 +45,7 @@
<li>Download a system image</li> <li>Download a system image</li>
<li>Unpack the system image</li> <li>Unpack the system image</li>
<li>Change root into the new system</li> <li>Change root into the new system</li>
<li>Set up the Glacier system profile and package index</li>
<li>Install programs</li> <li>Install programs</li>
<li>Install the Linux kernel</li> <li>Install the Linux kernel</li>
<li>Set up init scripts and services</li> <li>Set up init scripts and services</li>
@@ -64,9 +57,8 @@
<p>Run commands prefixed with <code>(root)#</code> as the root user.</p> <p>Run commands prefixed with <code>(root)#</code> as the root user.</p>
<p>Run commands prefixed with <code>(chroot)#</code> inside the chroot environment.</p> <p>Run commands prefixed with <code>(chroot)#</code> inside the chroot environment.</p>
<h2>Set up the environment</h2> <h2>Set up the environment</h2>
<p>Everest needs a proper environment set up in order to install correctly.</p> <p>On the host system being used to install Everest, a properly set up environment containing certain programs and directories must be set up to ensure the installation can take place. This section will go into detail on how to set up this environment.</p>
<p>A system mountpoint is where the new system's root (/) will be. Where you put this doesn't matter, as the host system used to build the system won't be included</p> <p>A system mountpoint is where the new system's root (<cil>/</cil>) will be. Where you put this doesn't matter, as the host system used to build the system won't be included in the final installation. In this example, we will use <cil>/mnt/everest</cil>.</p>
<p>in the final installation. In this example, we will use /mnt/everest.</p>
<p>Create a system mountpoint:</p> <p>Create a system mountpoint:</p>
<code>(root)# mkdir -pv /mnt/everest</code> <code>(root)# mkdir -pv /mnt/everest</code>
<p>A variable pointing to the system mountpoint may be useful in the future, as it will save you a bit of typing.</p> <p>A variable pointing to the system mountpoint may be useful in the future, as it will save you a bit of typing.</p>
@@ -83,25 +75,36 @@
<tr> <tr>
<td>/mnt/everest/boot</td> <td>/mnt/everest/boot</td>
<td>EFI system partition (esp)</td> <td>EFI system partition (esp)</td>
<td>No smaller than 256 MB, no larger than 1 GB</td> <td>No smaller than 256 MB, no larger than 1 GB (minimum 1 GB if installing multiple kernels)</td>
</tr> </tr>
<tr> <tr>
<td>/mnt/everest/usr</td> <td>/mnt/everest/usr</td>
<td>/usr</td> <td>User partition</td>
<td>No smaller than 25 GB</td> <td>No smaller than 25 GB, recommended size varies.</td>
</tr>
<tr>
<td>/mnt/everest/home</td>
<td>Home partition</td>
<td>It depends</td>
</tr> </tr>
<tr> <tr>
<td>/mnt/everest</td> <td>/mnt/everest</td>
<td>Root filesystem</td> <td>Root filesystem</td>
<td>Remainder of the drive</td> <td>Remainder of the drive</td>
</tr> </tr>
<table> </table>
<p>Partition the target drive:</p> <p>Partition the target drive:</p>
<code>(root)# cfdisk /dev/sdX</code> <code>(root)# cfdisk /dev/sdX</code>
<p>A valid filesystem is required on the drive.</p> <p>A valid filesystem is required on the drive.</p>
<p>Most filesystems should work, however ensure the system has the corresponding package for whatever filesystem you choose.</p> <p>Most filesystems should work, however ensure the system has the corresponding package for whatever filesystem you choose.</p>
<p>For example, if XFS is used, when installing the system:</p> <p>For example, if XFS is used, when installing the system:</p>
<code>(chroot)# gpkg -f world/xfsprogs</code> <code>(chroot)# gpkg -f xfsprogs</code>
<p></p>
<cautionhead><strong>CAUTION:</strong></cautionhead>
<div class="caution">
<p>Zfs is not officially supported by Everest, and requires a lot of configuration to work properly. Use Zfs at your own risk.</p>
<p>This stance may change at a later date, however currently there is no official Everest documentation for setting up Zfs.</p>
</div>
<p>In this example, Ext4 will be used.</p> <p>In this example, Ext4 will be used.</p>
<p>Create a filesystem:</p> <p>Create a filesystem:</p>
<code>(root)# mkfs.ext4 /dev/root</code> <code>(root)# mkfs.ext4 /dev/root</code>
@@ -123,9 +126,8 @@
<p>Create remaining directories on /usr with mkusrskel:</p> <p>Create remaining directories on /usr with mkusrskel:</p>
<code>(root)# mkusrskel -d /mnt/everest/usr</code> <code>(root)# mkusrskel -d /mnt/everest/usr</code>
<h2>Downloading a system image</h2> <h2>Downloading a system image</h2>
<p>An Everest system image provides an incomplete root filesystem which users can build a system off of. Users should be careful of which</p> <p>An Everest system image provides an incomplete root filesystem which users can build a system off of. This includes system programs, libraries, Glacier, among others. Users should be careful of which image they choose, as switching in the future is arduous, time consuming, and requires rebuilding a lot of packages.</p>
<p>image they choose, as switching in the future is trivial, time consuming, and requires rebuilding a lot of packages. It's a lot better</p> <p>It's a lot better to get it right the first time, rather than trying to get it right later.</p>
<p>to get it right the first time, rather than trying to get it right later.</p>
<p>Do some thorough planning to ensure you get the right system image. For instance, ask yourself a few questions, such as:</p> <p>Do some thorough planning to ensure you get the right system image. For instance, ask yourself a few questions, such as:</p>
<ol> <ol>
<li>Do I need 32 bit libraries?</li> <li>Do I need 32 bit libraries?</li>
@@ -134,9 +136,14 @@
<li>Do I want to set up NSA Security Enhanced Linux (SELinux)</li> <li>Do I want to set up NSA Security Enhanced Linux (SELinux)</li>
<li>Do I want an init system other than Busybox's built in init configured out of the box?</li> <li>Do I want an init system other than Busybox's built in init configured out of the box?</li>
</ol> </ol>
<notehead><strong>NOTE:</strong></notehead>
<div class="note">
<p>Make sure you're happy with the system image you choose. While migrating in the future is possible, it requires rebuilding the majority of the system, takes a substantial amount of time, and may present other issues.</p>
</div>
<p></p>
<warnhead><strong>WARNING:</strong></warnhead> <warnhead><strong>WARNING:</strong></warnhead>
<div class="warning"> <div class="warning">
<p>Make sure you're happy with the system image you choose. While migrating in the future is possible, it requires rebuilding the majority of the system.</p> <p>As a beginner, under NO CIRCUMSTANCES should you use a system image omitting 32 bit libraries unless it is ABSOLUTELY NECESSARY.</p>
</div> </div>
<p>Downloading a system image that is severely out of date is not recommended. Many programs, such as the kernel or SSL library will be vulnerable to attacks.</p> <p>Downloading a system image that is severely out of date is not recommended. Many programs, such as the kernel or SSL library will be vulnerable to attacks.</p>
<p>Download a system image with wget:</p> <p>Download a system image with wget:</p>
@@ -144,33 +151,36 @@
<h2>Unpacking the system image</h2> <h2>Unpacking the system image</h2>
<p>Now that a system image has been downloaded, we can unpack it.</p> <p>Now that a system image has been downloaded, we can unpack it.</p>
<p>Ensure the system image is inside the system mountpoint, otherwise you may run into trouble.</p> <p>Ensure the system image is inside the system mountpoint, otherwise you may run into trouble.</p>
<p>Since a Linux root filesystem is complex, and many different files need to be owned by certain users, or have certain permissions, simply running `tar xf` will</p> <p>Since a Linux root filesystem is complex, and many different files need to be owned by certain users, or have certain permissions, simply running <cil>tar xf</cil> will result in a broken image, as the proper permissions are not carried over. A couple extra flags are needed to preserve these permissions in the unpacked image.</p>
<p>result in a broken image. A couple extra flags are needed to preserve these permissions in the unpacked image.</p>
<p>Unpack the system image:</p> <p>Unpack the system image:</p>
<code>(root)# tar -xpvf SYSTEM_IMAGE --xattrs-include='*.*' --numeric-owner</code> <code>(root)# tar -xpvf SYSTEM_IMAGE --xattrs-include='*.*' --numeric-owner</code>
<p>If this command was run correctly, you shouldn't need to edit any permissions manually.</p> <p>If this command was run correctly, you shouldn't need to edit any permissions manually.</p>
<p>In case permissions were changed, you can use the <cil>prep</cil> command from <cil>everest-build-tools</cil>.</p>
<cautionhead><strong>CAUTION:</strong></cautionhead>
<div class="caution">
<p>Caution should be exercised when running <cil-inv>prep</cil-inv> as it can mess with permissions already existing on the system.</p>
</div>
<h2>Chrooting into the system mountpoint</h2> <h2>Chrooting into the system mountpoint</h2>
<p>Although we have a relatively complete root filesystem at this point, many essential programs are still missing. These include the kernel and bootloader. Without these,</p> <p>Although we have a relatively complete root filesystem at this point, many essential programs are still missing. These include the kernel and bootloader. Without these, the system is unable to boot. At this point, we must chroot into the new system. This will allow us to complete the system's build process without booting into it.</p>
<p>the system is unable to boot. At this point, we must chroot into the new system. This will allow us to complete the system without booting.</p>
<p>Chroot into the new system:</p> <p>Chroot into the new system:</p>
<code>(root)# everest-chroot /mnt/everest</code> <code>(root)# everest-chroot /mnt/everest</code>
<p>Change the shell prompt to differentiate the two environments:</p> <p>Change the shell prompt to differentiate the two environments:</p>
<code>(chroot)# echo "export PS1='(chroot) ${PS1}'" >> /etc/profile && source /etc/profile</code> <code>(chroot)# echo "export PS1='(chroot) ${PS1}'" &gt;&gt; /etc/profile && source /etc/profile</code>
<h2>Install packages</h2> <h2>Install packages</h2>
<p>Any programs you wish to install, such as display servers, login managers, and desktop environments, should be installed now. The kernel can take multiple</p> <p>Any programs you wish to install, such as display servers, login managers, and desktop environments, should be installed now. The kernel can take multiple hours to compile on some hardware.</p>
<p>hours to compile on some hardware.</p>
<p>Glacier manages packages on the system, and it allows users to install, or 'merge' their own. It is recommended to get familiar with this system.</p> <p>Glacier manages packages on the system, and it allows users to install, or 'merge' their own. It is recommended to get familiar with this system.</p>
<wiki>See: <a href="https://git.everestlinux.org/EverestLinux/wiki/wiki/Introduction-to-Glacier">Introduction to Glacier</a></wiki> <wikihead><strong>WIKI</strong>: <a href="https://git.everestlinux.org/EverestLinux/wiki/wiki/Introduction-to-Glacier">Introduction to Glacier</a></wikihead>
<p>Glacier may not function correctly if the package database has not been downloaded. If <cil>gpkg</cil> outputs the following error: <cil>[x] Local package database does not exist.</cil>, run:</p>
<p><code>(chroot)# glacier-update-pkgdb</code></p>
<h2>Install the Linux kernel</h2> <h2>Install the Linux kernel</h2>
<p>The most important part of the system, the kernel, which allows hardware to communicate with software, is ready to be installed.</p> <p>The most important part of the system, the kernel, which allows hardware to communicate with software, is ready to be installed.</p>
<p>If needed, merge the linux-firmware package, which provides device firmware:</p> <p>If needed, merge the linux-firmware package, which provides device firmware:</p>
<code>(chroot)# gpkg -f world/linux-firmware</code> <code>(chroot)# gpkg -f linux-firmware</code>
<p>At this stage, you can decide which kernel you want to install. In Everest's package repository, many prebuilt kernels are available, as well as the</p> <p>At this stage, you can decide which kernel you want to install. In Everest's package repository, many prebuilt kernels are available, as well as the source code, should you wish to compile your own.</p>
<p>source code, should you wish to compile your own.</p>
<p><strong>Option 1: Custom kernel</strong></p> <p><strong>Option 1: Custom kernel</strong></p>
<p>Compiling a custom kernel is the recommended option for most users, as it allows the most control.</p> <p>Compiling a custom kernel is the recommended option for most users, as it allows the most control over what exactly is installed on your system.</p>
<p>Download the kernel's source tree:</p> <p>Download the kernel's source tree:</p>
<code>(chroot)# gpkg -f world/linux</code> <code>(chroot)# gpkg -f linux</code>
<p>The source tree will be located under /usr/src/linux.</p> <p>The source tree will be located under /usr/src/linux.</p>
<p>Inside /usr/src/linux, ensure the source tree is completely clean by running the following:</p> <p>Inside /usr/src/linux, ensure the source tree is completely clean by running the following:</p>
<code>(chroot)# make mrproper</code> <code>(chroot)# make mrproper</code>
@@ -179,8 +189,8 @@
<khead><strong>KERNEL: </strong> Enbable support for IPv6</khead> <khead><strong>KERNEL: </strong> Enbable support for IPv6</khead>
<div class="kernel"> <div class="kernel">
<p>Networking support ---></p> <p>Networking support ---></p>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbspNetworking options ---></p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Networking options ---></p>
<p>&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<*> The IPv6 protocol [CONFIG_IPV6]</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*&gt; The IPv6 protocol [CONFIG_IPV6]</p>
</div> </div>
<p> Recommended options are not provided - it is up to you to configure the kernel for your setup.</p> <p> Recommended options are not provided - it is up to you to configure the kernel for your setup.</p>
<p>Configure the kernel:</p> <p>Configure the kernel:</p>
@@ -192,8 +202,7 @@
<p>Once the kernel is configured, compile it:</p> <p>Once the kernel is configured, compile it:</p>
<code>(chroot)# make && make modules install</code> <code>(chroot)# make && make modules install</code>
<p><strong>Option 2: Distribution kernel</strong></p> <p><strong>Option 2: Distribution kernel</strong></p>
<p>For those who do not wish to configure a custom kernel, or likewise do not have the time or system resources to do so, a distribution kernel</p> <p>For those who do not wish to configure a custom kernel, or likewise do not have the time or system resources to do so, a distribution kernel provides a binary kernel. However, there are a couple of pitfalls to this option:</p>
<p>provides a binary kernel. However, there are a couple of pitfalls to this option:</p>
<ol> <ol>
<li>Distribution kernels are not fine tuned to your system, they are generic and bloated</li> <li>Distribution kernels are not fine tuned to your system, they are generic and bloated</li>
<li>Distribution kernels are managed by their respective development teams, who must be relied upon for fixes</li> <li>Distribution kernels are managed by their respective development teams, who must be relied upon for fixes</li>
@@ -208,8 +217,7 @@
<p>Install a distribution kernel:</p> <p>Install a distribution kernel:</p>
<code>(chroot)# gpkg -f world/linux-{everest,zen,hardened}</code> <code>(chroot)# gpkg -f world/linux-{everest,zen,hardened}</code>
<h2>Build an initramfs</h2> <h2>Build an initramfs</h2>
<p>Depending on your system, an initramfs may be required. For example, users of distribution kernels will ALWAYS need to build an initramfs,</p> <p>Depending on your system, an initramfs may be required. For example, users of distribution kernels will ALWAYS need to build an initramfs, while those who configured and compiled their own will usually not need one.</p>
<p>while those who configured and compiled their own will usually not need one.</p>
<p>To build an initramfs, you will need dracut. Install dracut:</p> <p>To build an initramfs, you will need dracut. Install dracut:</p>
<code>(chroot)# gpkg -f world/dracut</code> <code>(chroot)# gpkg -f world/dracut</code>
<p>Build an initramfs:</p> <p>Build an initramfs:</p>
@@ -220,9 +228,9 @@
<p>For example, on a system with a root, /usr, and boot partition, /etc/fstab will look like this:</p> <p>For example, on a system with a root, /usr, and boot partition, /etc/fstab will look like this:</p>
<fhead><strong>FILE:</strong> /etc/fstab</fhead> <fhead><strong>FILE:</strong> /etc/fstab</fhead>
<div class="file"> <div class="file">
<p>/dev/sda1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp/&nbsp&nbsp&nbsp&nbsp&nbsp&nbspext4&nbsp&nbsp&nbsp&nbsp&nbsp&nbspnoatime&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0 1</p> <p>/dev/sda1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ext4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;noatime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 1</p>
<p>/dev/sda2&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp/usr&nbsp&nbsp&nbsp&nbsp&nbsp&nbspext4&nbsp&nbsp&nbsp&nbsp&nbsp&nbspnoatime&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0 1</p> <p>/dev/sda2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/usr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ext4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;noatime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 1</p>
<p>/dev/sda3&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp/boot&nbsp&nbsp&nbsp&nbsp&nbsp&nbspvfat&nbsp&nbsp&nbsp&nbsp&nbsp&nbspdefaults,noatime&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp0 2</p> <p>/dev/sda3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/boot&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vfat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;defaults,noatime&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0 2</p>
</div> </div>
<p>System services that some may find helpful, such as a cron daemon or logging daemon, should be set up now.</p> <p>System services that some may find helpful, such as a cron daemon or logging daemon, should be set up now.</p>
<p>On systems using systemd:</p> <p>On systems using systemd:</p>
@@ -239,8 +247,8 @@
<p>Or, on systemd:</p> <p>Or, on systemd:</p>
<code>(chroot)# hostnamectl hostname <i>hostname</i></code> <code>(chroot)# hostnamectl hostname <i>hostname</i></code>
<p>A network connection is very important, and there are multiple ways to set one up.</p> <p>A network connection is very important, and there are multiple ways to set one up.</p>
<warnhead><strong>WARNING:</strong></warnhead> <cautionhead><strong>CAUTION:</strong></cautionhead>
<div class="warning"> <div class="caution">
<p>Ensure your network is fully set up before proceeding with any other steps. It's better to get it right the first time, rather than trying to fix it later.</p> <p>Ensure your network is fully set up before proceeding with any other steps. It's better to get it right the first time, rather than trying to fix it later.</p>
</div> </div>
<p>First, ensure the desired network interface is not blocked by rfkill:</p> <p>First, ensure the desired network interface is not blocked by rfkill:</p>
@@ -270,9 +278,9 @@
<p>The /etc/hosts file is used to resolve IP addresses not resolved by the DHCP server.</p> <p>The /etc/hosts file is used to resolve IP addresses not resolved by the DHCP server.</p>
<fhead><strong>FILE:</strong> /etc/hosts</fhead> <fhead><strong>FILE:</strong> /etc/hosts</fhead>
<div class="file"> <div class="file">
<p>127.0.0.1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsplocalhost</p> <p>127.0.0.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost</p>
<p>::1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsplocalhost</p> <p>::1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localhost</p>
<p>127.0.1.1&nbsp&nbsp&nbsp&nbsp&nbsp&nbsplocaldomain <i>hostname</i></p> <p>127.0.1.1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;localdomain <i>hostname</i></p>
</div> </div>
<p>The root password is extremely important, as it controls access to the root user, the most powerful user on the system.</p> <p>The root password is extremely important, as it controls access to the root user, the most powerful user on the system.</p>
<p>Ensure your chosen root password is strong enough where it cannot be guessed easily.</p> <p>Ensure your chosen root password is strong enough where it cannot be guessed easily.</p>
@@ -291,14 +299,47 @@
<p>permit USER as root</p> <p>permit USER as root</p>
</div> </div>
<h2>Configure the bootloader</h2> <h2>Configure the bootloader</h2>
<p>Now that the system is correctly configured and the kernel is installed, the final step can proceed - installing the bootloader. Without a bootloader, the system</p> <p>Now that the system is correctly configured and the kernel is installed, the final step can proceed - installing the bootloader. Without a bootloader, the system will be unable to load the Linux kernel upon boot.</p>
<p>will be unable to load the Linux kernel upon boot. This guide only mentions GRUB, however note that other bootloaders are supported.</p> <p>This guide only mentions GRUB, however note that other bootloaders are supported.</p>
<p>Merge GRUB for BIOS:</p> <p>The GRUB package for certain system profiles compiles BIOS AND UEFI support. If you wish to remove UEFI support, you will have to manually patch the package file.</p>
<code>(chroot)# gpkg -f world/grub-bios</code> <p>Unless you are using some obscure system profile, or simply want to make your system as small as possible, you definitely will not have to worry about this.</p>
<p>Merge GRUB for UEFI:</p> <wikihead><strong>WIKI</strong>: <a href="https://git.everestlinux.org/EverestLinux/wiki/wiki/Introduction-to-Glacier">Introduction to Glacier</a></wikihead>
<code>(chroot)# gpkg -f world/grub-efi</code> <p>Merge <cil>grub</cil>:</p>
<code>(chroot)# gpkg -f grub</code>
<p>Install GRUB for BIOS:</p> <p>Install GRUB for BIOS:</p>
<code>(chroot)# grub-install /dev/sda</code> <code>(chroot)# grub-install /dev/sda</code>
<p>If configuring GRUB to boot with UEFI, a few extra things need to be configured.</p>
<p>The following kernel options need to be configured in order to support UEFI:</p>
<khead><strong>KERNEL:</strong> Enable UEFI support</khead>
<div class="kernel">
<p>Processor type and features ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[*] EFI runtime service support</p>
<p></p>
<p>-*- Enable the block layer ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Partition Types ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ /*] Advanced partition selection</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[*] EFI GUID Partition support</p>
<p></p>
<p>Device Drivers ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Firmware Drivers ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[*] Mark VGA/VBE/EFI FB as generic system framebuffer</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Graphics Support ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*&gt; Direct Rendering Manager (Xfree86 4.1.0 and higher DRI support) ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[*] Enable legacy fbdev support for your modsetting driver</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*&gt; Simple framebuffer driver</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Frame buffer Devices ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*&gt; Support for frame buffer devices ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console display driver support ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-*- Framebuffer Console support</p>
<p>File systems ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DOS/FAT/EXFAT/NT Filesystems ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*/M&gt; VFAT (Windows-95) fs support</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Psuedo filesystems ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*/M&gt; EFI Variable filesystem</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-*- Native language support ---&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*/M&gt; Codepage 437 (United States, Canada)</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;*/M&gt; NLS ISO 8859-1 (Latin 1; Western European Languages)</p>
</div>
<p>Install GRUB for UEFI:</p> <p>Install GRUB for UEFI:</p>
<code>(chroot)# grub-install --target=x86_64-efi --efi-directory=/boot</code> <code>(chroot)# grub-install --target=x86_64-efi --efi-directory=/boot</code>
<p>For GRUB to work correctly, a configuration file must be created. Create one now:</p> <p>For GRUB to work correctly, a configuration file must be created. Create one now:</p>
@@ -312,7 +353,7 @@
<code>(root)# umount -R /mnt/everest</code> <code>(root)# umount -R /mnt/everest</code>
<p>Reboot the system:</p> <p>Reboot the system:</p>
<code>(root)# reboot</code> <code>(root)# reboot</code>
<p>Ensure the installation medium is removed, or else you will not boot into the new system, rather back into the installation medium.</p> <p>Ensure the newly installed bootloader is first to boot, otherwise you will end up in your old system again. If you used a live USB to install Everest, make sure you remove it before rebooting.</p>
<h2>Conclusion</h2> <h2>Conclusion</h2>
<p>If all went well, Everest should boot up with no problems.</p> <p>If all went well, Everest should boot up with no problems.</p>
<p>Remove the system image from /:</p> <p>Remove the system image from /:</p>
@@ -320,10 +361,11 @@
<p>With the installation out of the way, you now have a minimal Linux environment to play around in, and to build around.</p> <p>With the installation out of the way, you now have a minimal Linux environment to play around in, and to build around.</p>
<p>Many things still need to be set up and configured.</p> <p>Many things still need to be set up and configured.</p>
<wiki>See: <a href="docs/general-recommendations.html">General Recommendations</a></wiki> <wiki>See: <a href="docs/general-recommendations.html">General Recommendations</a></wiki>
</div> <p></p>
<p>If you require assistance, reach out to the community on Discord (HJzJUwSmDf) or IRC (#everestlinux on libera.chat)</p>
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>

64
packages.html Normal file
View File

@@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Home</title>
<link type="text/css" rel="stylesheet" href="css/nord.css"/>
</head>
<body>
<!-- Navbar -->
<div class="sidenav">
<img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a>
<a href="about.html">About</a>
<a href="install.html">Install</a>
<a href="packages.html">Packages</a>
<a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a>
<a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git ↗</a>
</div>
<!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Packages</h1>
</div>
</div>
<div class="main">
<h2>Package Database</h2>
<p>This page contains links to multiple Glacier package databases.</p>
<p>Packages should correspond to your system's profile. If you don't know what your system's profile is, it can be queried with the following command:</p>
<code>(user)$ echo $GLACIER_SYSTEM_PROFILE</code>
<p></p>
<script>
function myfunction() {
var input, filter, ul, li, a, i, txtValue;
input = document.getElementById('myInput');
filter = input.value.toUpperCase();
ul = document.getElementById("myUL");
li = ul.getElementsByTagName('li');
for (i = 0; i < li.length; i++) {
a = li[i].getElementsByTagName("a")[0];
txtValue = a.textContent || a.innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {
li[i].style.displau = "";
} else {
li[i].style.display = "none";
}
}
}
</script>
<input type="text" id="myInput" onKeyup="myFunction()" placeholder="Search databases...">
<ul id="myUL">
<li><a href="https://git.everestlinux.org/EverestLinux/epkgs-x86-musl">x86-musl</a></li>
<li><a href="https://git.everestlinux.org/EverestLinux/epkgs-x86-glibc">x86-glibc</a></li>
</ul>
</div>
<footer>
<p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer>

View File

@@ -4,28 +4,32 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Everest Linux - Home</title> <title>Everest Linux - Home</title>
<link type="text/css" rel="stylesheet" href="css/everest.css"/> <link type="text/css" rel="stylesheet" href="css/nord.css"/>
</head> </head>
<body> <body>
<!-- Navbar --> <!-- Navbar -->
<div class="sidenav"> <div class="sidenav">
<img src="img/everest-k2.svg" alt="everest-logo"> <img src="img/everest-nord.svg" alt="everest-logo">
<a href="index.html">Home</a> <a href="index.html">Home</a>
<a href="about.html">About</a> <a href="about.html">About</a>
<a href="install.html">Install</a> <a href="install.html">Install</a>
<a href="https://git.everestlinux.org/EverestLinux/glacier-pkgs">Packages</a> <a href="packages.html">Packages</a>
<a href="download.html">Downloads</a> <a href="download.html">Downloads</a>
<a href="docs/home.html">Docs</a> <a href="docs/home.html">Docs</a>
<a href="https://git.everestlinux.org/EverestLinux/wiki">Wiki</a>
<a href="errata.html">Errata</a> <a href="errata.html">Errata</a>
<a href="https://git.everestlinux.org">Git</a> <a href="https://git.everestlinux.org">Git</a>
</div> </div>
<!-- Rest of page --> <!-- Rest of page -->
<div class="hero-image">
<div class="hero-text">
<h1>Template</h1>
</div>
</div>
<div class="main"> <div class="main">
</div> </div>
<footer> <footer>
<p>Copyright (C) 2021-2023 Everest Linux</p> <p>Copyright (C) 2021-2025 Everest Linux</p>
<p>Linux (R) is a registered trademark of Linus Torvalds.</p> <p>Linux (R) is a registered trademark of Linus Torvalds.</p>
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p> <p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
</footer> </footer>