website

Carbs Linux website
git clone git://git.carbslinux.org/website
Log | Files | Refs | Submodules | README

commit 40eb4e45d48337dfcd748540fe25c5eb684e911d
parent 77268def84b011969c62bbb1432c79de62656009
Author: Cem Keylan <cem@ckyln.com>
Date:   Wed,  9 Sep 2020 17:51:04 +0300

Install docs

Diffstat:
Mbuild | 3+++
Adocs/docs/Changing-Init-Program.html | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Chroot.html | 206+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Configuring-Init.html | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Init-System.html | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Installation.html | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Kernel.html | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Making-your-system-bootable.html | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Package-Manager.html | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Packaging-System.html | 197+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Post_002dinstallation.html | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Preparing-Environment.html | 129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Rsync-Repositories.html | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Setting-up-an-rsync-repository-for-distribution.html | 99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/System-Configuration.html | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/Usage.html | 113+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/cpt_002dalternatives.html | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/cpt_002dbuild.html | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adocs/docs/index.html | 108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Changing-Init-Program.html | 92+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Chroot.html | 206+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Configuring-Init.html | 122+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Init-System.html | 66++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Installation.html | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Kernel.html | 114+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Making-your-system-bootable.html | 106+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Package-Manager.html | 70++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Packaging-System.html | 197+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Post_002dinstallation.html | 71+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Preparing-Environment.html | 129+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Rsync-Repositories.html | 101+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Setting-up-an-rsync-repository-for-distribution.html | 99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/System-Configuration.html | 77+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/Usage.html | 113+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/cpt_002dalternatives.html | 82+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/cpt_002dbuild.html | 65+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Asrc/docs/index.html | 108+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
37 files changed, 3781 insertions(+), 0 deletions(-)

diff --git a/build b/build @@ -125,6 +125,9 @@ main() { genrss index news index.html > src/news.xml genrss src/blog > src/rss.xml + # Generate htmldocs + make -s -C texidocs DESTDIR="$PWD/src/docs" htmldocs + # Generate pages genpages } diff --git a/docs/docs/Changing-Init-Program.html b/docs/docs/Changing-Init-Program.html @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Changing Init Program (Carbs Linux User Manual)</title> + +<meta name="description" content="Changing Init Program (Carbs Linux User Manual)"> +<meta name="keywords" content="Changing Init Program (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Init-System.html" rel="up" title="Init System"> +<link href="Configuring-Init.html" rel="prev" title="Configuring Init"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Changing-Init-Program"></span><div class="header"> +<p> +Previous: <a href="Configuring-Init.html" accesskey="p" rel="prev">Configuring Init</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> +<hr> +<span id="Changing-Init-Program-1"></span><h3 class="section">3.2 Changing Init Program</h3> + +<p>By default, Carbs Linux comes preinstalled with <code>busybox-init</code>, but this +can easily be replaced without any issues. Currently, available init systems are: +</p> +<ul> +<li> sinit +</li><li> busybox +</li><li> runit +</li><li> shinit +</li></ul> + +<p>This example is for runit, but it will work with all init systems packaged in the +distribution repositories. See <a href="cpt_002dalternatives.html"><code>cpt-alternatives</code></a> +</p> +<div class="example"> +<pre class="example">$ cpt a runit /usr/bin/init +$ cpt a runit /usr/bin/poweroff +$ cpt a runit /usr/bin/reboot +</pre></div> + +<span id="Rebooting-after-changing-Init"></span><h4 class="subsection">3.2.1 Rebooting after changing Init</h4> + +<p>After switching init systems, your running init system may not accept the +new poweroff commands. You will need to reboot/poweroff using the running init&rsquo;s +utilities for the new utilities to work. These commands are for the init system +currently running on your system and not the one you are switching to. +</p> +<dl compact="compact"> +<dt><code>busybox</code></dt> +<dd><p><code>$ busybox reboot</code> +</p></dd> +<dt><code>runit</code></dt> +<dd><p><code>$ runit-init 6</code> +</p></dd> +<dt><code>shinit/sinit</code></dt> +<dd><p><code>$ kill -s INT 1</code> +</p></dd> +</dl> + + + + + +</body> +</html> diff --git a/docs/docs/Chroot.html b/docs/docs/Chroot.html @@ -0,0 +1,206 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Chroot (Carbs Linux User Manual)</title> + +<meta name="description" content="Chroot (Carbs Linux User Manual)"> +<meta name="keywords" content="Chroot (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="System-Configuration.html" rel="next" title="System Configuration"> +<link href="Preparing-Environment.html" rel="prev" title="Preparing Environment"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Chroot"></span><div class="header"> +<p> +Next: <a href="System-Configuration.html" accesskey="n" rel="next">System Configuration</a>, Previous: <a href="Preparing-Environment.html" accesskey="p" rel="prev">Preparing Environment</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Chroot-1"></span><h3 class="section">1.2 Chroot</h3> + +<p>Chroot into Carbs Linux! +</p> +<div class="example"> +<pre class="example">$ ./cpt-chroot /mnt +</pre></div> + +<span id="Setting-up-repositories"></span><h4 class="subsection">1.2.1 Setting up repositories</h4> + +<p>Newest tarballs do not come with repositories, so you will need to manually +obtain them, and set your <code>CPT_PATH</code> environment variable. Carbs Linux +repositories can either be obtained by <code>git</code> or <code>rsync</code>. +While rsync repositories are overall faster and smaller, git offers the whole +history of the repository and a means to manipulate your repository as you like +it. If you want to obtain the git repository, you will need to install +<code>git</code> itself. +</p> +<p>The following guide will assume that you put the repositories into +<samp>~/repos/</samp> directory, but you can put the repositories into any directory +you want. So go ahead and create that directory. <code>mkdir -p $HOME/repos</code>. +</p> +<span id="Obtaining-from-rsync"></span><h4 class="subsubsection">1.2.1.1 Obtaining from rsync</h4> + +<p>Carbs Linux rsync repositories live in <a href="rsync://carbslinux.org/repo">rsync://carbslinux.org/repo</a>. In +order to obtain it, run the following: +</p> +<div class="example"> +<pre class="example">$ rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs +</pre></div> + +<span id="Obtaining-from-git"></span><h4 class="subsubsection">1.2.1.2 Obtaining from git</h4> + +<p>Carbs Linux git repositories can be found both from the main server and GitHub +(mirror). Here are both their repository links. You can clone any of them. +</p> +<ul> +<li> <a href="git://git.carbslinux.org/repository">git://git.carbslinux.org/repository</a> +</li><li> <a href="https://github.com/carbslinux/repository">https://github.com/carbslinux/repository</a> +</li></ul> + +<div class="example"> +<pre class="example">$ git clone git://git.carbslinux.org/repository $HOME/repos/carbs +</pre></div> + +<span id="Making-the-package-manager-use-the-repositories"></span><h4 class="subsubsection">1.2.1.3 Making the package manager use the repositories</h4> + +<p>In your shell&rsquo;s configuration file, or in your <samp>~/.profile</samp> file, add the +following lines: +</p> +<div class="example"> +<pre class="example">export CPT_PATH='' +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/core +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/extra +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/xorg +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/community +export CPT_PATH +</pre></div> + +<span id="Updating-packages"></span><h4 class="subsection">1.2.2 Updating packages</h4> + +<p>It is good practice to make sure your system is up to date, especially before +building new packages. If there is an update for the package manager you will +need to update twice. +</p> +<div class="example"> +<pre class="example">$ cpt update +</pre></div> + +<span id="Installing-packages"></span><h4 class="subsection">1.2.3 Installing packages</h4> + +<p>Since you are operating on a really small base, you might need to build and +install new programs to extend the functionality of your system. In order to +build and install packages new packages in Carbs, you need to execute the +following. +</p> +<div class="example"> +<pre class="example">$ cpt build package +$ cpt install package +</pre></div> + +<span id="Essential-Software"></span><h4 class="subsection">1.2.4 Essential Software</h4> + +<p>Here is a list of software that you might want to have on your system. +</p> +<p>BOOTLOADERS +</p><ul> +<li> efibootmgr +</li><li> grub +</li></ul> +<p>FILESYSTEMS +</p><ul> +<li> e2fsprogs +</li><li> dosfstools +</li><li> ntfs-3g +</li></ul> +<p>NETWORKING +</p><ul> +<li> dhcpcd +</li><li> wpa_supplicant +</li></ul> +<p>TEXT EDITORS +</p><ul> +<li> nano +</li><li> vim +</li><li> neatvi +</li><li> nvi +</li><li> emacs +</li><li> emacs-nox (terminal-only version of emacs) +</li></ul> +<p>USER SHELLS +</p><ul> +<li> bash +</li><li> zsh +</li><li> dash +</li><li> oksh +</li><li> rc +</li></ul> +<p>POSIX BASE UTILITIES +</p><ul> +<li> busybox +</li><li> sbase +</li><li> coreutils +</li></ul> +<p>DOCUMENTATION +</p><ul> +<li> carbs-docs +</li><li> man-pages +</li><li> man-pages-posix +</li></ul> + +<span id="Obtaining-the-documentation-_0028optional_0029"></span><h4 class="subsection">1.2.5 Obtaining the documentation (optional)</h4> + +<p>All the documentation for Carbs Linux can be found on a single info manual to be +viewed offline. You can obtain texinfo or the info (standalone) package in order +to view the documentation. +</p> +<div class="example"> +<pre class="example">Install the documentation. +$ cpt b carbs-docs &amp;&amp; cpt i carbs-docs + +Install either texinfo or the info package. We will be installing standalone info +as it doesn't need perl. +$ cpt b info &amp;&amp; cpt i info + +You can then run info and navigate through the documentation. +$ info carbslinux +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="System-Configuration.html" accesskey="n" rel="next">System Configuration</a>, Previous: <a href="Preparing-Environment.html" accesskey="p" rel="prev">Preparing Environment</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/Configuring-Init.html b/docs/docs/Configuring-Init.html @@ -0,0 +1,122 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Configuring Init (Carbs Linux User Manual)</title> + +<meta name="description" content="Configuring Init (Carbs Linux User Manual)"> +<meta name="keywords" content="Configuring Init (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Init-System.html" rel="up" title="Init System"> +<link href="Changing-Init-Program.html" rel="next" title="Changing Init Program"> +<link href="Init-System.html" rel="prev" title="Init System"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Configuring-Init"></span><div class="header"> +<p> +Next: <a href="Changing-Init-Program.html" accesskey="n" rel="next">Changing Init Program</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> +<hr> +<span id="Configuring-Init-1"></span><h3 class="section">3.1 Configuring Init</h3> + +<p>There are three ways you can change the behaviour of the init system. Those are: +</p> +<ol> +<li> Kernel Command Line +</li><li> <samp>/etc/init/rc.conf</samp> file +</li><li> Init Hooks +</li></ol> + +<span id="Kernel-Command-Line"></span><h4 class="subsection">3.1.1 Kernel Command Line</h4> + +<p>On GRUB, you can edit the kernel command line parameters, which will be parsed +as variables on the init system. Not all of the parameters will be acted upon, +but all of them will be set as variables on the init script. For example an +example command line, and how it is interpreted. +</p> +<div class="example"> +<pre class="example">BOOT_IMAGE=/boot/vmlinuz root=/dev/sda2 rw loglevel=3 quiet +</pre></div> + +<p>This command line will be parsed to set the following variables: +</p> +<div class="example"> +<pre class="example">BOOT_IMAGE=/boot/vmlinuz +root=/dev/sda2 +rw=1 +loglevel=3 +quiet=1 +</pre></div> + +<p>Some of these variables, such as <code>rw</code>/<code>ro</code>, <code>loglevel</code>, and +<code>quiet</code>, will be used by the init system to change the behaviour of the +startup. +</p> +<span id="g_t_002fetc_002finit_002frc_002econf-file"></span><h4 class="subsection">3.1.2 <samp>/etc/init/rc.conf</samp> file</h4> + +<p>However, the kernel command line isn&rsquo;t the only place to set your boot +parameters. You can specify variables here as well, although note that the +kernel command line always gets the priority for these variables since they can +be set just before boot. +</p> +<span id="Init-Hooks"></span><h4 class="subsection">3.1.3 Init Hooks</h4> + +<p>Init hooks are for custom personal commands that the user may want to add to +alter their boot. These can be used to load kernel modules, modify interfaces, +and lot more. Those hooks are added to the <samp>/etc/init</samp> directory with the +hook name as the suffix. For example, a boot script will be placed as +<samp>/etc/init/my-hook.boot</samp>. Currently, there are 4 hooks that the user can use. +</p> +<dl compact="compact"> +<dt><samp>early-boot</samp></dt> +<dd><p>Run after pseudo-filesystems are mounted. +</p></dd> +<dt><samp>boot</samp></dt> +<dd><p>Run before the boot stage is completed. +</p></dd> +<dt><samp>pre.shutdown</samp></dt> +<dd><p>Run first when shutting down. +</p></dd> +<dt><samp>post.shutdown</samp></dt> +<dd><p>Run just before the system is halted. +</p></dd> +</dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Changing-Init-Program.html" accesskey="n" rel="next">Changing Init Program</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/Init-System.html b/docs/docs/Init-System.html @@ -0,0 +1,66 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Init System (Carbs Linux User Manual)</title> + +<meta name="description" content="Init System (Carbs Linux User Manual)"> +<meta name="keywords" content="Init System (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Configuring-Init.html" rel="next" title="Configuring Init"> +<link href="Setting-up-an-rsync-repository-for-distribution.html" rel="prev" title="Setting up an rsync repository for distribution"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Init-System"></span><div class="header"> +<p> +Previous: <a href="Package-Manager.html" accesskey="p" rel="prev">Package Manager</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Init-System-1"></span><h2 class="chapter">3 Init System</h2> + +<p>Carbs Linux init scripts are run by the init daemon (<code>busybox</code> by default) +on boot and shutdown processes. It also provides its own halting program named +shalt. This provides a portable method that doesn&rsquo;t rely on non-POSIX external +programs. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Configuring-Init.html" accesskey="1">Configuring Init</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Changing-Init-Program.html" accesskey="2">Changing Init Program</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/docs/docs/Installation.html b/docs/docs/Installation.html @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Installation (Carbs Linux User Manual)</title> + +<meta name="description" content="Installation (Carbs Linux User Manual)"> +<meta name="keywords" content="Installation (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Preparing-Environment.html" rel="next" title="Preparing Environment"> +<link href="index.html" rel="prev" title="Top"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Installation"></span><div class="header"> +<p> +Next: <a href="Package-Manager.html" accesskey="n" rel="next">Package Manager</a>, Previous: <a href="index.html" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Installation-1"></span><h2 class="chapter">1 Installation</h2> + +<p>These are the step-by-step instructions for installing Carbs Linux. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Preparing-Environment.html" accesskey="1">Preparing Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting ready to chroot +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Chroot.html" accesskey="2">Chroot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Going inside your new system +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="System-Configuration.html" accesskey="3">System Configuration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing for your personal use +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Kernel.html" accesskey="4">Kernel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Compiling your own kernel +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Making-your-system-bootable.html" accesskey="5">Making your system bootable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing init and bootloader +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Post_002dinstallation.html" accesskey="6">Post-installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Acquiring more packages and repositories +</td></tr> +</table> + + + + +</body> +</html> diff --git a/docs/docs/Kernel.html b/docs/docs/Kernel.html @@ -0,0 +1,114 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Kernel (Carbs Linux User Manual)</title> + +<meta name="description" content="Kernel (Carbs Linux User Manual)"> +<meta name="keywords" content="Kernel (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Making-your-system-bootable.html" rel="next" title="Making your system bootable"> +<link href="System-Configuration.html" rel="prev" title="System Configuration"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Kernel"></span><div class="header"> +<p> +Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Kernel-1"></span><h3 class="section">1.4 Kernel</h3> + +<p>Kernel isn&rsquo;t managed under the main repositories, even though you could package +one for your personal use. Here is an <a href="https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux">example kernel package</a>, +which you will need to reconfigure for your specific setup if you want to make +use of it. +</p> +<span id="Obtaining-the-kernel-sources"></span><h4 class="subsection">1.4.1 Obtaining the kernel sources</h4> + +<p>You can visit the https://kernel.org website to choose a kernel that you want +to install. Though only the latest stable and longterm (LTS) versions are +supported. +</p> +<div class="example"> +<pre class="example">Download the kernel and extract it +$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.6.tar.xz +$ tar xf linux-5.7.6.tar.xz + +Change directory into the kernel sources +$ cd linux-5.7.6 +</pre></div> + +<span id="Installing-dependencies"></span><h4 class="subsection">1.4.2 Installing dependencies</h4> + +<p>In order to compile the kernel you will need to install some dependencies. You +will need <code>libelf</code> to compile the kernel. If you want to configure using the menu +interface you will also need <code>ncurses</code>. +</p> +<div class="example"> +<pre class="example">The package manager asks to install if you are building more than one package, +so no need to run 'cpt i ...' +$ cpt b libelf ncurses +</pre></div> + +<p>In the vanilla kernel sources, you need perl to compile the kernel, but it can +be easily patched out. You will need to apply the following patch. Patch was +written by <a href="https://github.com/E5ten">E5ten</a>. You will need to obtain and +apply the patch in the kernel source directory. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch +$ patch -p1 &lt; kernel-no-perl.patch +</pre></div> + +<span id="Compiling-the-kernel"></span><h4 class="subsection">1.4.3 Compiling the kernel</h4> + +<p>Next step is configuring and building the kernel. You can check Gentoo&rsquo;s <a href="https://wiki.gentoo.org/wiki/Kernel/Configuration">kernel configuration guide</a> +to learn more about the matter. Overall, Gentoo Wiki is a good place to learn +about configuration according to your hardware. The following will assume a +monolithic kernel. +</p> +<div class="example"> +<pre class="example">$ make menuconfig +$ make +$ install -Dm755 $(make -s image_name) /boot/vmlinuz-linux +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/Making-your-system-bootable.html b/docs/docs/Making-your-system-bootable.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Making your system bootable (Carbs Linux User Manual)</title> + +<meta name="description" content="Making your system bootable (Carbs Linux User Manual)"> +<meta name="keywords" content="Making your system bootable (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Post_002dinstallation.html" rel="next" title="Post-installation"> +<link href="Kernel.html" rel="prev" title="Kernel"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Making-your-system-bootable"></span><div class="header"> +<p> +Next: <a href="Post_002dinstallation.html" accesskey="n" rel="next">Post-installation</a>, Previous: <a href="Kernel.html" accesskey="p" rel="prev">Kernel</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Making-your-system-bootable-1"></span><h3 class="section">1.5 Making your system bootable</h3> + +<p>In order to be able to boot your fresh system, wou will need an init-daemon, +init-scripts and a bootloader. The init daemon is already provided by busybox, +but you can optionally change it. +</p> +<span id="Installing-a-bootloader"></span><h4 class="subsection">1.5.1 Installing a bootloader</h4> + +<p>In the main repository, there is efibootmgr and grub to serve as bootloaders. +efibootmgr can be used as a standalone bootloader, or can be used to install +grub in a UEFI environment. efibootmgr is needed unless you are using a device +without UEFI support (or you really want to use BIOS for a reason). +</p> +<p>GRUB BIOS installation +</p> +<div class="example"> +<pre class="example">$ cpt b grub &amp;&amp; cpt i grub +$ grub-install --target=i386-pc /dev/sdX +$ grub-mkconfig -o /boot/grub/grub.cfg +</pre></div> + +<p>GRUB UEFI installation +</p> +<div class="example"> +<pre class="example">$ cpt b efibootmgr &amp;&amp; cpt i efibootmgr +$ cpt b grub &amp;&amp; cpt i grub + +$ grub-install --target=x86_64-efi \ + --efi-directory=esp \ + --bootloader-id=CarbsLinux + +$ grub-mkconfig -o /boot/grub/grub.cfg +</pre></div> + +<span id="Installing-init-scripts"></span><h4 class="subsection">1.5.2 Installing init scripts</h4> + +<p>Only thing left to do is installing the init-scripts, and now you are almost +ready to boot your system! +</p> +<div class="example"> +<pre class="example">$ cpt b carbs-init &amp;&amp; cpt i carbs-init +</pre></div> + +<span id="Generating-fstab"></span><h4 class="subsection">1.5.3 Generating fstab</h4> + +<p>You can now manually edit your fstab entry, or you can use the genfstab tool. +If you want to use the tool, exit the chroot and run the following: +</p> +<div class="example"> +<pre class="example">$ wget https://github.com/cemkeylan/genfstab/raw/master/genfstab +$ chmod +x genfstab +$ ./genfstab -U /mnt &gt;&gt; /mnt/etc/fstab +</pre></div> + + + + +</body> +</html> diff --git a/docs/docs/Package-Manager.html b/docs/docs/Package-Manager.html @@ -0,0 +1,70 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Package Manager (Carbs Linux User Manual)</title> + +<meta name="description" content="Package Manager (Carbs Linux User Manual)"> +<meta name="keywords" content="Package Manager (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Usage.html" rel="next" title="Usage"> +<link href="Post_002dinstallation.html" rel="prev" title="Post-installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Package-Manager"></span><div class="header"> +<p> +Next: <a href="Init-System.html" accesskey="n" rel="next">Init System</a>, Previous: <a href="Installation.html" accesskey="p" rel="prev">Installation</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Package-Manager-1"></span><h2 class="chapter">2 Package Manager</h2> + +<p>Carbs Linux uses its own package managing toolchain named <code>cpt</code>. It is a +fork of the <a href="https://github.com/kisslinux/kiss">kiss</a> package manager. Unlike +<code>kiss</code>, however, its main goal is being easily extendable. Instead of being +a single file package manager, it revolves around the shell library <code>cpt-lib</code>, +and many tools that wrap around it. +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Usage.html" accesskey="1">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Packaging-System.html" accesskey="2">Packaging System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Rsync-Repositories.html" accesskey="3">Rsync Repositories</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/docs/docs/Packaging-System.html b/docs/docs/Packaging-System.html @@ -0,0 +1,197 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Packaging System (Carbs Linux User Manual)</title> + +<meta name="description" content="Packaging System (Carbs Linux User Manual)"> +<meta name="keywords" content="Packaging System (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="Rsync-Repositories.html" rel="next" title="Rsync Repositories"> +<link href="cpt_002dbuild.html" rel="prev" title="cpt-build"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Packaging-System"></span><div class="header"> +<p> +Next: <a href="Rsync-Repositories.html" accesskey="n" rel="next">Rsync Repositories</a>, Previous: <a href="Usage.html" accesskey="p" rel="prev">Usage</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Packaging-System-1"></span><h3 class="section">2.2 Packaging System</h3> + +<p>A package is formed of several files, these are: +</p><ul> +<li> <samp>build</samp> +</li><li> <samp>sources</samp> +</li><li> <samp>checksums</samp> +</li><li> <samp>version</samp> +</li><li> <samp>depends</samp> +</li><li> <samp>post-install</samp> +</li><li> <samp>message</samp> +</li><li> <samp>test</samp> +</li></ul> + +<p>Any other file can be added to the package directory at the discretion of the +package maintainer. Everything in the package directory will also be added to the +package database that is located on &rsquo;/var/db/cpt/installed&rsquo;. These can be +patches, configuration files, etc. +</p> +<span id="build"></span><h4 class="subsection">2.2.1 <samp>build</samp></h4> + +<p>Typically <samp>build</samp> files are shell scripts that run commands to prepare the source +code to be installed on the target system. Even though we will be assuming that +the <samp>build</samp> file is a POSIX shell script (for portability&rsquo;s sake), <samp>build</samp> +files can be any executable program from binary programs to <code>perl</code> scripts. +</p> +<p>The contents of a build script do not need to follow a certain rule for the +package manager, except for the fact that the user needs the permission to +execute the file. +</p> +<p>An important advice is to append an &rsquo;-e&rsquo; to the shebang (#!/bin/sh -e) so that +the build script exits on compilation error. +</p> +<p>Build is run with three arguments (<code>$#</code>) +</p> +<ol> +<li> Location of the package directory (DESTDIR) +</li><li> Package version +</li><li> System architecture +</li></ol> + +<span id="sources"></span><h4 class="subsection">2.2.2 <samp>sources</samp></h4> + +<p><samp>sources</samp> file is a list of files and sources that will be put to the build +directory during the build process. Those can be remote sources (such as tarballs), +git repositories, and files that reside on the package directory. +</p> +<p>The syntax is pretty simple for the <samp>soures</samp> file; <tt>src dest</tt>. The +<code>dest</code> parameter is optional. It is the directory that the source will be +placed in. Here is the <samp>sources</samp> file for the <code>gst-plugins</code> package: +</p> +<div class="example"> +<pre class="example">https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.16.2.tar.xz good +https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.16.2.tar.xz bad +https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.16.2.tar.xz ugly +https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.16.2.tar.xz libav +</pre></div> + +<p>This file is read from the package manager as space seperated. Files that begin +with a &rsquo;#&rsquo; comment are ignored. The first value points to the location of the +source. +</p> +<p>If it starts with a protcol url, (such as ftp:// http:// https://) it will be +downloaded with <code>curl</code>. +</p> +<p>If the source is a git repository, it shall be prefixed with a <tt>git+</tt> git(1) will +be used to do a shallow clone of the repository. If the commit is suffixed by a +history pointer, git will checkout the relevant revision. So, +</p> +<div class="example"> +<pre class="example">git+git://example.com/pub/repo#v1.2.3 will checkout the tag named 'v1.2.3' +git+git://example.com/pub/repo#development will checkout the branch named 'development' +git+git://example.com/pub/repo#1a314s87 will checkout the commit named '1a314s87' +</pre></div> + +<p>Other files are assumed to be residing in the package directory. They should be +added with their paths relative to the package directory. +</p> + +<span id="checksums"></span><h4 class="subsection">2.2.3 <samp>checksums</samp></h4> + +<p>checksums file is generated by the <samp>cpt c pkg command</samp>. It is generated +according to the order of the sources file. That&rsquo;s why you shouldn&rsquo;t be editing +it manually. The checksums file is created with the digests of the files using +the sha256 algorithm. +</p> +<span id="version"></span><h4 class="subsection">2.2.4 <samp>version</samp></h4> + +<p>The version file includes the version of the software and the release number of +of the package on a space seperated format. The contents of the file should look +like below. +</p> +<div class="example"> +<pre class="example">1.3.2 1 +</pre></div> + +<p>The version should always match to the number of the upstream release. For +drastic changes that require a rebuild Those can be, +</p> +<ul> +<li> update of libraries that forces the package to be relinked +</li><li> change in the build scripts that affect the output of the package +</li></ul> + +<p>When a version bump occurs, the release should be reset to 1. +</p> +<span id="depends"></span><h4 class="subsection">2.2.5 <samp>depends</samp></h4> + +<p>This is a list of dependencies that must be installed before a package build. You +can append &ldquo;make&rdquo; after a dependency to mark a package is only required during +the build process of a package. Packages marked as a make dependency can be +removed after the build. There are also &ldquo;test&rdquo; dependencies. These dependencies +are only installed if either the <code>CPT_TEST</code> is set to 1, or the build is run +with the <samp>-t</samp> or <samp>--test</samp> options. So, a package package could have +the following <samp>depends</samp> file: +</p> +<div class="example"> +<pre class="example">linux-headers make +python test +zlib +</pre></div> + +<span id="post_002dinstall"></span><h4 class="subsection">2.2.6 <samp>post-install</samp></h4> + +<p><samp>post-install</samp> files have the same requirements as the build script. They +will be run after the package is installed as root (or as the user if the user +has write permissions on <code>CPT_ROOT</code>). +</p> +<span id="message"></span><h4 class="subsection">2.2.7 <samp>message</samp></h4> + +<p>This plaintext file will be outputted with <code>cat</code> after every package is +installed. +</p> +<span id="test"></span><h4 class="subsection">2.2.8 <samp>test</samp></h4> + +<p>Test files are mainly for the repository maintainer to test the packages, and +will only run if the user has the <code>CPT_TEST</code> variable set, or the build is +run with the <samp>-t</samp> or <samp>--test</samp> options. This script is run on the +build directory. It is run right after the build script is finished. +</p> +<hr> +<div class="header"> +<p> +Next: <a href="Rsync-Repositories.html" accesskey="n" rel="next">Rsync Repositories</a>, Previous: <a href="Usage.html" accesskey="p" rel="prev">Usage</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/Post_002dinstallation.html b/docs/docs/Post_002dinstallation.html @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Post-installation (Carbs Linux User Manual)</title> + +<meta name="description" content="Post-installation (Carbs Linux User Manual)"> +<meta name="keywords" content="Post-installation (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Package-Manager.html" rel="next" title="Package Manager"> +<link href="Making-your-system-bootable.html" rel="prev" title="Making your system bootable"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Post_002dinstallation"></span><div class="header"> +<p> +Previous: <a href="Making-your-system-bootable.html" accesskey="p" rel="prev">Making your system bootable</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Post_002dinstallation-1"></span><h3 class="section">1.6 Post-installation</h3> + +<p>The base installation is now complete, you can now fine tune your system +according to your needs. Rest of these instructions are completely optional. +</p> +<span id="Acquiring-kiss-repositories"></span><h4 class="subsection">1.6.1 Acquiring kiss repositories</h4> + +<p>While not 100% compatible with cpt, you can use kiss repositories in your +system the same way you are using the distribution repositories. Here is an +example for the KISS Linux Community repository. +</p> +<div class="example"> +<pre class="example">$ git clone https://github.com/kisslinux/community $HOME/repos/kiss-community +$ export CPT_PATH=$CPT_PATH:$HOME/repos/kiss-community/community +</pre></div> + +<p>NOTE: There are lots of packages on the KISS community repository that are also +on Carbs Linux main repository. I would advise giving lower priority to the KISS +community repository as it may affect other packages that you might install. +</p> + + +</body> +</html> diff --git a/docs/docs/Preparing-Environment.html b/docs/docs/Preparing-Environment.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Preparing Environment (Carbs Linux User Manual)</title> + +<meta name="description" content="Preparing Environment (Carbs Linux User Manual)"> +<meta name="keywords" content="Preparing Environment (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Chroot.html" rel="next" title="Chroot"> +<link href="Installation.html" rel="prev" title="Installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Preparing-Environment"></span><div class="header"> +<p> +Next: <a href="Chroot.html" accesskey="n" rel="next">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Preparing-Environment-1"></span><h3 class="section">1.1 Preparing Environment</h3> +<p>To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you +can obtain a Gentoo or Void Linux live image. You can follow their instructions +to boot and setup your network. +</p> +<p>You will need the following programs in order to install Carbs Linux: +</p><ul> +<li> tar +</li><li> wget +</li><li> xz +</li><li> some form of base utilities (coreutils, sbase, busybox, etc.) +</li></ul> + +<p>Rest of these instructions will assume that you have set all of these up, and +will continue on that point. +</p> +<span id="Download"></span><h4 class="subsection">1.1.1 Download</h4> + +<p>First, we need to download the rootfs tarball. You can do the following in order +to obtain the rootfs. If you are using an i686 machine, replace the <code>x86_64</code> +with <code>i686</code>. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz +</pre></div> + +<p>We can then check the integrity of the tarball and do a signature verification. +Even thought these are optional, they are highly recommended. +</p> +<span id="Check-the-integrity-of-the-tarball-_0028Recommended_0029"></span><h4 class="subsection">1.1.2 Check the integrity of the tarball (Recommended)</h4> + +<p>All of the releases are saved in a single file named <samp>sha256sums.txt</samp>, but the +latest release is saved on <samp>carbs-rootfs.tar.xz.sha256</samp>. You can acquire and +verify the tarball. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sha256 +$ sha256sum -c carbs-rootfs.tar.xz.sha256 +</pre></div> + +<span id="Verify-the-signature"></span><h4 class="subsection">1.1.3 Verify the signature</h4> + +<p>It is highly recommended to verify the signature of the tarball. You will need +GPG for this. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/carbs-rootfs.tar.xz.sig +$ gpg --recv-keys FF484BDFEFCEF8FF +$ gpg --verify carbs-rootfs.tar.xz.sig +</pre></div> + +<span id="Extracting-the-tarball"></span><h4 class="subsection">1.1.4 Extracting the tarball</h4> + +<p>You will need to extract the tarball to your desired location. For partitioning, +you can follow <a href="https://wiki.archlinux.org/index.php/Partitioning">this guide</a>. +This will assume that you will be mounting your root partition to <samp>/mnt</samp>. +</p> +<div class="example"> +<pre class="example">$ mount /dev/sdx1 /mnt +$ tar xf carbs-rootfs.tar.xz -C /mnt +</pre></div> + +<span id="Obtain-the-chroot-helper"></span><h4 class="subsection">1.1.5 Obtain the chroot helper</h4> + +<p>You can obtain the <code>cpt-chroot</code> script in order to do a simple chroot into +your new root filesystem. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/distfiles/cpt-chroot +$ chmod a+x cpt-chroot +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="Chroot.html" accesskey="n" rel="next">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/Rsync-Repositories.html b/docs/docs/Rsync-Repositories.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Rsync Repositories (Carbs Linux User Manual)</title> + +<meta name="description" content="Rsync Repositories (Carbs Linux User Manual)"> +<meta name="keywords" content="Rsync Repositories (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="Setting-up-an-rsync-repository-for-distribution.html" rel="next" title="Setting up an rsync repository for distribution"> +<link href="Packaging-System.html" rel="prev" title="Packaging System"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Rsync-Repositories"></span><div class="header"> +<p> +Previous: <a href="Packaging-System.html" accesskey="p" rel="prev">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Rsync-Repositories-1"></span><h3 class="section">2.3 Rsync Repositories</h3> + +<p>Rsync repositories are simple to serve and simple to use. In the repository +directory, there needs to be a &rsquo;.rsync&rsquo; file that points to the remote of the +repository. This is used in order to fetch changes from the upstream. &rsquo;.rsync&rsquo; +file looks like this for the core repository: +</p> +<div class="example"> +<pre class="example">rsync://carbslinux.org/repo/core +</pre></div> + +<p>Rsync repositories have some few distinctions when it comes to fetching them. +They can be either synced individually or as a &ldquo;root&rdquo;. There are 2 important +files, those are <samp>.rsync</samp> and <samp>.rsync_root</samp>. Here is the Carbs Linux +rsync repository structure. +</p> +<div class="example"> +<pre class="example"> / + ----------------- + | | +.rsync core/ + ---------------- + | | + .rsync .rsync_root +</pre></div> + +<p>Unlike git repositories, they don&rsquo;t have a defined &ldquo;root&rdquo; directory. This is +both an advantage and a disadvantage. This way, we can sync individual +repositories, but that also means we need extra files to define root directories +and repository locations. Here is the content for each of these files: +</p> +<div class="example"> +<pre class="example">/.rsync: rsync://carbslinux.org/repo +/core/.rsync: rsync://carbslinux.org/repo/core +/core/.rsync_root: .. +</pre></div> + +<p>The <samp>.rsync_root</samp> file on the core repository points to the upper directory. +If a <samp>.rsync</samp> file exists on the upper directory, this means that is the whole +repository and will sync the entire repository instead of each individual repository. +</p> +<p>If the upper directory doesn&rsquo;t have this <samp>.rsync</samp> file, this means that this +is an individual repository, and the package manager will fetch accordingly. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Setting-up-an-rsync-repository-for-distribution.html" accesskey="1">Setting up an rsync repository for distribution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/docs/docs/Setting-up-an-rsync-repository-for-distribution.html b/docs/docs/Setting-up-an-rsync-repository-for-distribution.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Setting up an rsync repository for distribution (Carbs Linux User Manual)</title> + +<meta name="description" content="Setting up an rsync repository for distribution (Carbs Linux User Manual)"> +<meta name="keywords" content="Setting up an rsync repository for distribution (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Rsync-Repositories.html" rel="up" title="Rsync Repositories"> +<link href="Init-System.html" rel="next" title="Init System"> +<link href="Rsync-Repositories.html" rel="prev" title="Rsync Repositories"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Setting-up-an-rsync-repository-for-distribution"></span><div class="header"> +<p> +Up: <a href="Rsync-Repositories.html" accesskey="u" rel="up">Rsync Repositories</a> &nbsp; </p> +</div> +<hr> +<span id="Setting-up-an-rsync-repository-for-distribution-1"></span><h4 class="subsection">2.3.1 Setting up an rsync repository for distribution</h4> + +<p>Carbs Linux repositories automatically sync from the git repostitories and serve +it through the rsync daemon. Here is a sample shell script that I use in order to +sync repositories. Feel free to customize for your own use. +</p> +<pre class="verbatim"> #!/bin/sh + HOSTNAME=&quot;rsync://carbslinux.org/repo&quot; + GITDIR=&quot;/pub/git/repo&quot; + SHAREDIR=&quot;/pub/share/repo&quot; + git -C &quot;$GITDIR&quot; pull + + rsync -avcC --delete --include=core --exclude=.rsync,.rsync_root &quot;$GITDIR/.&quot; &quot;$SHAREDIR&quot; + + printf '%s\n' &quot;$HOSTNAME&quot; &gt; &quot;$GITDIR/.rsync&quot; + for dir in &quot;$GITDIR/&quot;*; do + [ -d &quot;$dir&quot; ] || continue + [ -f &quot;$dir/.rsync&quot; ] || + printf '%s/%s\n' &quot;$HOSTNAME&quot; &quot;${dir##*/}&quot; &gt; &quot;$dir/.rsync&quot; + printf '..\n' &gt; &quot;$dir/.rsync_root&quot; + done +</pre> +<p>You can then create an <strong>rsync</strong> user for serving the repositories. +</p> +<div class="example"> +<pre class="example">$ adduser -SD rsync +</pre></div> + +<p>Create <samp>/etc/rsyncd.conf</samp> and a service configuration as well. +</p> +<pre class="verbatim"> + uid = rsync + gid = rsync + address = example.com + max connections = 10 + use chroot = yes + + [repo] + path = /pub/share/repo + comment = My repository +</pre> +<p>Create a service file at <samp>/etc/sv/rsync/run</samp> (runit): +</p> +<div class="example"> +<pre class="example">#!/bin/sh +exec rsync --daemon --no-detach +</pre></div> + + + +</body> +</html> diff --git a/docs/docs/System-Configuration.html b/docs/docs/System-Configuration.html @@ -0,0 +1,77 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>System Configuration (Carbs Linux User Manual)</title> + +<meta name="description" content="System Configuration (Carbs Linux User Manual)"> +<meta name="keywords" content="System Configuration (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Kernel.html" rel="next" title="Kernel"> +<link href="Chroot.html" rel="prev" title="Chroot"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="System-Configuration"></span><div class="header"> +<p> +Next: <a href="Kernel.html" accesskey="n" rel="next">Kernel</a>, Previous: <a href="Chroot.html" accesskey="p" rel="prev">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="System-Configuration-1"></span><h3 class="section">1.3 System Configuration</h3> + +<p>After you have finished installing some extra packages, you can configure your +system to your liking. +</p> +<span id="Configuring-hostname-_0028recommended_0029"></span><h4 class="subsection">1.3.1 Configuring hostname (recommended)</h4> + +<p>You might want to add a hostname, especially in a networked environment. Your +hostname will default to &rsquo;carbslinux&rsquo; unless you set this. +</p> +<div class="example"> +<pre class="example">$ echo your-hostname &gt; /etc/hostname +</pre></div> + +<span id="Setting-up-hosts-file-_0028optional_0029"></span><h4 class="subsection">1.3.2 Setting up hosts file (optional)</h4> + +<p>You can edit your /etc/hosts file, which is the static lookup table for host +names. By default, there are two entries for localhost which are OKAY. You can +replace the &rsquo;localhost&rsquo; part of these entries to your hostname. +</p> +<div class="example"> +<pre class="example">127.0.0.1 localhost.localdomain localhost +::1 localhost.localdomain localhost ip6-localhost +</pre></div> + + + + +</body> +</html> diff --git a/docs/docs/Usage.html b/docs/docs/Usage.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Usage (Carbs Linux User Manual)</title> + +<meta name="description" content="Usage (Carbs Linux User Manual)"> +<meta name="keywords" content="Usage (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="cpt_002dalternatives.html" rel="next" title="cpt-alternatives"> +<link href="Package-Manager.html" rel="prev" title="Package Manager"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Usage"></span><div class="header"> +<p> +Next: <a href="Packaging-System.html" accesskey="n" rel="next">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Usage-1"></span><h3 class="section">2.1 Usage</h3> +<p><code>cpt</code> is formed of many tools combined in a single environment, similar +to <code>git</code>. When you run <code>cpt</code> without any arguments, it will show +all available tools and their explanations. Here is an example call with extra +scripts on my system: +</p> +<div class="example"> +<pre class="example">-&gt; Carbs Packaging Tool +-&gt; add Commit the current directory as a new package +-&gt; alternatives List and swap to alternatives +-&gt; build Build a package +-&gt; bump Commit the current directory as a version bump +-&gt; cargo-urlgen Create static cargo sources for Rust packages +-&gt; cargolock-urlgen Convert the given Cargo.lock file to sources +-&gt; cat Concatanate package files in the installed package database +-&gt; changelog Print the git log of the specific package +-&gt; chbuild Create/destroy temporary chroots +-&gt; checkmissing Verify package manifests +-&gt; checksum Generate checksums +-&gt; chroot Enter a chroot +-&gt; commit Commit a package without the prefix of 'package:' +-&gt; depends Display a package's dependencies +-&gt; download Download sources for the given package +-&gt; exec Execute a command inside the alternatives system +-&gt; export Turn an installed package into a CPT tarball +-&gt; fetch Fetch repositories +-&gt; fork Fork a package to the current directory +-&gt; getchoice Prints the full path to a file in the alternatives system. +-&gt; install Install a package +-&gt; link Link a forked package's files to the other repository +-&gt; list List installed packages +-&gt; maintainer Find the maintainer of a package +-&gt; manifest Display all files owned by a package +-&gt; manifest-tree Display all files owned by a package with a tree view +-&gt; new Create a boilerplate CPT package +-&gt; orphans List orphaned packages +-&gt; owns Check which package owns a file +-&gt; rel Bump the release number of a package +-&gt; remove Remove a package +-&gt; repodepends Display a package's dependencies in the repository +-&gt; reporevdepends Display packages on the repository which depend on package +-&gt; reset Remove all packages except for the base +-&gt; revdepends Display packages which depend on package +-&gt; search Search for a package +-&gt; size Show the size on disk for a package +-&gt; source Extract sources of a given package to the current directory +-&gt; update Check for updates +</pre></div> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="cpt_002dalternatives.html" accesskey="1"><code>cpt-alternatives</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="cpt_002dbuild.html" accesskey="2"><code>cpt-build</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<div class="header"> +<p> +Next: <a href="Packaging-System.html" accesskey="n" rel="next">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/docs/docs/cpt_002dalternatives.html b/docs/docs/cpt_002dalternatives.html @@ -0,0 +1,82 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>cpt-alternatives (Carbs Linux User Manual)</title> + +<meta name="description" content="cpt-alternatives (Carbs Linux User Manual)"> +<meta name="keywords" content="cpt-alternatives (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Usage.html" rel="up" title="Usage"> +<link href="cpt_002dbuild.html" rel="next" title="cpt-build"> +<link href="Usage.html" rel="prev" title="Usage"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="cpt_002dalternatives"></span><div class="header"> +<p> +Next: <a href="cpt_002dbuild.html" accesskey="n" rel="next"><code>cpt-build</code></a>, Up: <a href="Usage.html" accesskey="u" rel="up">Usage</a> &nbsp; </p> +</div> +<hr> +<span id="cpt_002dalternatives-1"></span><h4 class="subsection">2.1.1 <code>cpt-alternatives</code></h4> + +<p>You can list and swap to alternatives using <code>cpt-alternatives</code>, or +<code>cpt a</code> for short. When run without alternatives, it will list +alternatives. It can read from standard input if <samp>-</samp> is given as an +argument. +</p> +<span id="Examples"></span><h4 class="subsubsection">2.1.1.1 Examples</h4> + +<p>List alternatives +</p> +<div class="example"> +<pre class="example">$ cpt-alternatives +ncurses /usr/bin/clear +ncurses /usr/bin/reset +</pre></div> + +<p>Swap to <code>clear</code> from <code>ncurses</code>. +</p> +<div class="example"> +<pre class="example">$ cpt-alternatives ncurses /usr/bin/clear +-&gt; Swapping '/usr/bin/clear' from 'busybox' to 'ncurses' +</pre></div> + +<p>Swap in bulk (all of sbase). +</p> +<div class="example"> +<pre class="example">$ cpt a | grep ^sbase | cpt a - +</pre></div> + + + + +</body> +</html> diff --git a/docs/docs/cpt_002dbuild.html b/docs/docs/cpt_002dbuild.html @@ -0,0 +1,65 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>cpt-build (Carbs Linux User Manual)</title> + +<meta name="description" content="cpt-build (Carbs Linux User Manual)"> +<meta name="keywords" content="cpt-build (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Usage.html" rel="up" title="Usage"> +<link href="Packaging-System.html" rel="next" title="Packaging System"> +<link href="cpt_002dalternatives.html" rel="prev" title="cpt-alternatives"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="cpt_002dbuild"></span><div class="header"> +<p> +Previous: <a href="cpt_002dalternatives.html" accesskey="p" rel="prev"><code>cpt-alternatives</code></a>, Up: <a href="Usage.html" accesskey="u" rel="up">Usage</a> &nbsp; </p> +</div> +<hr> +<span id="cpt_002dbuild-1"></span><h4 class="subsection">2.1.2 <code>cpt-build</code></h4> + +<p>cpt-build will build given packages and their dependencies. If multiple packages +are specified, it will ask to install the packages as well. +</p> +<span id="Options"></span><h4 class="subsubsection">2.1.2.1 Options</h4> +<p><code>cpt-build</code> will accept the following options: +</p> +<ul> +<li> <samp>-y</samp>, <samp>--no-prompt</samp> &ndash; Do not prompt for confirmation +</li><li> <samp></samp> +</li></ul> + + + + +</body> +</html> diff --git a/docs/docs/index.html b/docs/docs/index.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Top (Carbs Linux User Manual)</title> + +<meta name="description" content="Top (Carbs Linux User Manual)"> +<meta name="keywords" content="Top (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="#Top" rel="start" title="Top"> +<link href="Installation.html" rel="next" title="Installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<h1 class="settitle" align="center">Carbs Linux User Manual</h1> + + + +<span id="Top"></span><div class="header"> +<p> +Next: <a href="Installation.html" accesskey="n" rel="next">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Carbs-Linux-User-Manual"></span><h1 class="top">Carbs Linux User Manual</h1> + +<p>This is the full documentation of Carbs Linux, from the details of the +distribution, installation, to the package manager. It is not yet complete. +</p> + +<p>This documentation is also available in the distribution which can be read +by either running <code>info carbslinux</code> or reading <samp>/usr/share/doc/carbslinux.txt</samp> +with your favorite pager. You can install either the <code>info</code> or <code>texinfo</code> +for doing the first. +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Installation.html" accesskey="1">Installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing Carbs Linux +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Package-Manager.html" accesskey="2">Package Manager</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Carbs Linux Packaging Tools +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Init-System.html" accesskey="3">Init System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Configuring the init system +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> + +</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">&mdash; Detailed Menu Listing &mdash; + +Overview of Installation + +</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Preparing-Environment.html" accesskey="4">Preparing Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting ready to chroot +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Chroot.html" accesskey="5">Chroot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Going inside your new system +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="System-Configuration.html" accesskey="6">System Configuration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing for your personal use +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Kernel.html" accesskey="7">Kernel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Compiling your own kernel +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Making-your-system-bootable.html" accesskey="8">Making your system bootable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing init and bootloader +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Post_002dinstallation.html" accesskey="9">Post-installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Acquiring more packages and repositories +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> + +Overview of Package manager + +</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Usage.html">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using Carbs Packaging Tools +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Packaging-System.html">Packaging System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">More detail on creating packages +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Rsync-Repositories.html">Rsync Repositories</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Information on using or creating rsync repositories +</td></tr> +</table> + +<hr> +<div class="header"> +<p> +Next: <a href="Installation.html" accesskey="n" rel="next">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Changing-Init-Program.html b/src/docs/Changing-Init-Program.html @@ -0,0 +1,92 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Changing Init Program (Carbs Linux User Manual)</title> + +<meta name="description" content="Changing Init Program (Carbs Linux User Manual)"> +<meta name="keywords" content="Changing Init Program (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Init-System.html" rel="up" title="Init System"> +<link href="Configuring-Init.html" rel="prev" title="Configuring Init"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Changing-Init-Program"></span><div class="header"> +<p> +Previous: <a href="Configuring-Init.html" accesskey="p" rel="prev">Configuring Init</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> +<hr> +<span id="Changing-Init-Program-1"></span><h3 class="section">3.2 Changing Init Program</h3> + +<p>By default, Carbs Linux comes preinstalled with <code>busybox-init</code>, but this +can easily be replaced without any issues. Currently, available init systems are: +</p> +<ul> +<li> sinit +</li><li> busybox +</li><li> runit +</li><li> shinit +</li></ul> + +<p>This example is for runit, but it will work with all init systems packaged in the +distribution repositories. See <a href="cpt_002dalternatives.html"><code>cpt-alternatives</code></a> +</p> +<div class="example"> +<pre class="example">$ cpt a runit /usr/bin/init +$ cpt a runit /usr/bin/poweroff +$ cpt a runit /usr/bin/reboot +</pre></div> + +<span id="Rebooting-after-changing-Init"></span><h4 class="subsection">3.2.1 Rebooting after changing Init</h4> + +<p>After switching init systems, your running init system may not accept the +new poweroff commands. You will need to reboot/poweroff using the running init&rsquo;s +utilities for the new utilities to work. These commands are for the init system +currently running on your system and not the one you are switching to. +</p> +<dl compact="compact"> +<dt><code>busybox</code></dt> +<dd><p><code>$ busybox reboot</code> +</p></dd> +<dt><code>runit</code></dt> +<dd><p><code>$ runit-init 6</code> +</p></dd> +<dt><code>shinit/sinit</code></dt> +<dd><p><code>$ kill -s INT 1</code> +</p></dd> +</dl> + + + + + +</body> +</html> diff --git a/src/docs/Chroot.html b/src/docs/Chroot.html @@ -0,0 +1,206 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Chroot (Carbs Linux User Manual)</title> + +<meta name="description" content="Chroot (Carbs Linux User Manual)"> +<meta name="keywords" content="Chroot (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="System-Configuration.html" rel="next" title="System Configuration"> +<link href="Preparing-Environment.html" rel="prev" title="Preparing Environment"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Chroot"></span><div class="header"> +<p> +Next: <a href="System-Configuration.html" accesskey="n" rel="next">System Configuration</a>, Previous: <a href="Preparing-Environment.html" accesskey="p" rel="prev">Preparing Environment</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Chroot-1"></span><h3 class="section">1.2 Chroot</h3> + +<p>Chroot into Carbs Linux! +</p> +<div class="example"> +<pre class="example">$ ./cpt-chroot /mnt +</pre></div> + +<span id="Setting-up-repositories"></span><h4 class="subsection">1.2.1 Setting up repositories</h4> + +<p>Newest tarballs do not come with repositories, so you will need to manually +obtain them, and set your <code>CPT_PATH</code> environment variable. Carbs Linux +repositories can either be obtained by <code>git</code> or <code>rsync</code>. +While rsync repositories are overall faster and smaller, git offers the whole +history of the repository and a means to manipulate your repository as you like +it. If you want to obtain the git repository, you will need to install +<code>git</code> itself. +</p> +<p>The following guide will assume that you put the repositories into +<samp>~/repos/</samp> directory, but you can put the repositories into any directory +you want. So go ahead and create that directory. <code>mkdir -p $HOME/repos</code>. +</p> +<span id="Obtaining-from-rsync"></span><h4 class="subsubsection">1.2.1.1 Obtaining from rsync</h4> + +<p>Carbs Linux rsync repositories live in <a href="rsync://carbslinux.org/repo">rsync://carbslinux.org/repo</a>. In +order to obtain it, run the following: +</p> +<div class="example"> +<pre class="example">$ rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs +</pre></div> + +<span id="Obtaining-from-git"></span><h4 class="subsubsection">1.2.1.2 Obtaining from git</h4> + +<p>Carbs Linux git repositories can be found both from the main server and GitHub +(mirror). Here are both their repository links. You can clone any of them. +</p> +<ul> +<li> <a href="git://git.carbslinux.org/repository">git://git.carbslinux.org/repository</a> +</li><li> <a href="https://github.com/carbslinux/repository">https://github.com/carbslinux/repository</a> +</li></ul> + +<div class="example"> +<pre class="example">$ git clone git://git.carbslinux.org/repository $HOME/repos/carbs +</pre></div> + +<span id="Making-the-package-manager-use-the-repositories"></span><h4 class="subsubsection">1.2.1.3 Making the package manager use the repositories</h4> + +<p>In your shell&rsquo;s configuration file, or in your <samp>~/.profile</samp> file, add the +following lines: +</p> +<div class="example"> +<pre class="example">export CPT_PATH='' +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/core +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/extra +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/xorg +CPT_PATH=$CPT_PATH:$HOME/repos/carbs/community +export CPT_PATH +</pre></div> + +<span id="Updating-packages"></span><h4 class="subsection">1.2.2 Updating packages</h4> + +<p>It is good practice to make sure your system is up to date, especially before +building new packages. If there is an update for the package manager you will +need to update twice. +</p> +<div class="example"> +<pre class="example">$ cpt update +</pre></div> + +<span id="Installing-packages"></span><h4 class="subsection">1.2.3 Installing packages</h4> + +<p>Since you are operating on a really small base, you might need to build and +install new programs to extend the functionality of your system. In order to +build and install packages new packages in Carbs, you need to execute the +following. +</p> +<div class="example"> +<pre class="example">$ cpt build package +$ cpt install package +</pre></div> + +<span id="Essential-Software"></span><h4 class="subsection">1.2.4 Essential Software</h4> + +<p>Here is a list of software that you might want to have on your system. +</p> +<p>BOOTLOADERS +</p><ul> +<li> efibootmgr +</li><li> grub +</li></ul> +<p>FILESYSTEMS +</p><ul> +<li> e2fsprogs +</li><li> dosfstools +</li><li> ntfs-3g +</li></ul> +<p>NETWORKING +</p><ul> +<li> dhcpcd +</li><li> wpa_supplicant +</li></ul> +<p>TEXT EDITORS +</p><ul> +<li> nano +</li><li> vim +</li><li> neatvi +</li><li> nvi +</li><li> emacs +</li><li> emacs-nox (terminal-only version of emacs) +</li></ul> +<p>USER SHELLS +</p><ul> +<li> bash +</li><li> zsh +</li><li> dash +</li><li> oksh +</li><li> rc +</li></ul> +<p>POSIX BASE UTILITIES +</p><ul> +<li> busybox +</li><li> sbase +</li><li> coreutils +</li></ul> +<p>DOCUMENTATION +</p><ul> +<li> carbs-docs +</li><li> man-pages +</li><li> man-pages-posix +</li></ul> + +<span id="Obtaining-the-documentation-_0028optional_0029"></span><h4 class="subsection">1.2.5 Obtaining the documentation (optional)</h4> + +<p>All the documentation for Carbs Linux can be found on a single info manual to be +viewed offline. You can obtain texinfo or the info (standalone) package in order +to view the documentation. +</p> +<div class="example"> +<pre class="example">Install the documentation. +$ cpt b carbs-docs &amp;&amp; cpt i carbs-docs + +Install either texinfo or the info package. We will be installing standalone info +as it doesn't need perl. +$ cpt b info &amp;&amp; cpt i info + +You can then run info and navigate through the documentation. +$ info carbslinux +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="System-Configuration.html" accesskey="n" rel="next">System Configuration</a>, Previous: <a href="Preparing-Environment.html" accesskey="p" rel="prev">Preparing Environment</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Configuring-Init.html b/src/docs/Configuring-Init.html @@ -0,0 +1,122 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Configuring Init (Carbs Linux User Manual)</title> + +<meta name="description" content="Configuring Init (Carbs Linux User Manual)"> +<meta name="keywords" content="Configuring Init (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Init-System.html" rel="up" title="Init System"> +<link href="Changing-Init-Program.html" rel="next" title="Changing Init Program"> +<link href="Init-System.html" rel="prev" title="Init System"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Configuring-Init"></span><div class="header"> +<p> +Next: <a href="Changing-Init-Program.html" accesskey="n" rel="next">Changing Init Program</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> +<hr> +<span id="Configuring-Init-1"></span><h3 class="section">3.1 Configuring Init</h3> + +<p>There are three ways you can change the behaviour of the init system. Those are: +</p> +<ol> +<li> Kernel Command Line +</li><li> <samp>/etc/init/rc.conf</samp> file +</li><li> Init Hooks +</li></ol> + +<span id="Kernel-Command-Line"></span><h4 class="subsection">3.1.1 Kernel Command Line</h4> + +<p>On GRUB, you can edit the kernel command line parameters, which will be parsed +as variables on the init system. Not all of the parameters will be acted upon, +but all of them will be set as variables on the init script. For example an +example command line, and how it is interpreted. +</p> +<div class="example"> +<pre class="example">BOOT_IMAGE=/boot/vmlinuz root=/dev/sda2 rw loglevel=3 quiet +</pre></div> + +<p>This command line will be parsed to set the following variables: +</p> +<div class="example"> +<pre class="example">BOOT_IMAGE=/boot/vmlinuz +root=/dev/sda2 +rw=1 +loglevel=3 +quiet=1 +</pre></div> + +<p>Some of these variables, such as <code>rw</code>/<code>ro</code>, <code>loglevel</code>, and +<code>quiet</code>, will be used by the init system to change the behaviour of the +startup. +</p> +<span id="g_t_002fetc_002finit_002frc_002econf-file"></span><h4 class="subsection">3.1.2 <samp>/etc/init/rc.conf</samp> file</h4> + +<p>However, the kernel command line isn&rsquo;t the only place to set your boot +parameters. You can specify variables here as well, although note that the +kernel command line always gets the priority for these variables since they can +be set just before boot. +</p> +<span id="Init-Hooks"></span><h4 class="subsection">3.1.3 Init Hooks</h4> + +<p>Init hooks are for custom personal commands that the user may want to add to +alter their boot. These can be used to load kernel modules, modify interfaces, +and lot more. Those hooks are added to the <samp>/etc/init</samp> directory with the +hook name as the suffix. For example, a boot script will be placed as +<samp>/etc/init/my-hook.boot</samp>. Currently, there are 4 hooks that the user can use. +</p> +<dl compact="compact"> +<dt><samp>early-boot</samp></dt> +<dd><p>Run after pseudo-filesystems are mounted. +</p></dd> +<dt><samp>boot</samp></dt> +<dd><p>Run before the boot stage is completed. +</p></dd> +<dt><samp>pre.shutdown</samp></dt> +<dd><p>Run first when shutting down. +</p></dd> +<dt><samp>post.shutdown</samp></dt> +<dd><p>Run just before the system is halted. +</p></dd> +</dl> + +<hr> +<div class="header"> +<p> +Next: <a href="Changing-Init-Program.html" accesskey="n" rel="next">Changing Init Program</a>, Up: <a href="Init-System.html" accesskey="u" rel="up">Init System</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Init-System.html b/src/docs/Init-System.html @@ -0,0 +1,66 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Init System (Carbs Linux User Manual)</title> + +<meta name="description" content="Init System (Carbs Linux User Manual)"> +<meta name="keywords" content="Init System (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Configuring-Init.html" rel="next" title="Configuring Init"> +<link href="Setting-up-an-rsync-repository-for-distribution.html" rel="prev" title="Setting up an rsync repository for distribution"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Init-System"></span><div class="header"> +<p> +Previous: <a href="Package-Manager.html" accesskey="p" rel="prev">Package Manager</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Init-System-1"></span><h2 class="chapter">3 Init System</h2> + +<p>Carbs Linux init scripts are run by the init daemon (<code>busybox</code> by default) +on boot and shutdown processes. It also provides its own halting program named +shalt. This provides a portable method that doesn&rsquo;t rely on non-POSIX external +programs. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Configuring-Init.html" accesskey="1">Configuring Init</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Changing-Init-Program.html" accesskey="2">Changing Init Program</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/src/docs/Installation.html b/src/docs/Installation.html @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Installation (Carbs Linux User Manual)</title> + +<meta name="description" content="Installation (Carbs Linux User Manual)"> +<meta name="keywords" content="Installation (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Preparing-Environment.html" rel="next" title="Preparing Environment"> +<link href="index.html" rel="prev" title="Top"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Installation"></span><div class="header"> +<p> +Next: <a href="Package-Manager.html" accesskey="n" rel="next">Package Manager</a>, Previous: <a href="index.html" accesskey="p" rel="prev">Top</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Installation-1"></span><h2 class="chapter">1 Installation</h2> + +<p>These are the step-by-step instructions for installing Carbs Linux. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Preparing-Environment.html" accesskey="1">Preparing Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting ready to chroot +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Chroot.html" accesskey="2">Chroot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Going inside your new system +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="System-Configuration.html" accesskey="3">System Configuration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing for your personal use +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Kernel.html" accesskey="4">Kernel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Compiling your own kernel +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Making-your-system-bootable.html" accesskey="5">Making your system bootable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing init and bootloader +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Post_002dinstallation.html" accesskey="6">Post-installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Acquiring more packages and repositories +</td></tr> +</table> + + + + +</body> +</html> diff --git a/src/docs/Kernel.html b/src/docs/Kernel.html @@ -0,0 +1,114 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Kernel (Carbs Linux User Manual)</title> + +<meta name="description" content="Kernel (Carbs Linux User Manual)"> +<meta name="keywords" content="Kernel (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Making-your-system-bootable.html" rel="next" title="Making your system bootable"> +<link href="System-Configuration.html" rel="prev" title="System Configuration"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Kernel"></span><div class="header"> +<p> +Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Kernel-1"></span><h3 class="section">1.4 Kernel</h3> + +<p>Kernel isn&rsquo;t managed under the main repositories, even though you could package +one for your personal use. Here is an <a href="https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux">example kernel package</a>, +which you will need to reconfigure for your specific setup if you want to make +use of it. +</p> +<span id="Obtaining-the-kernel-sources"></span><h4 class="subsection">1.4.1 Obtaining the kernel sources</h4> + +<p>You can visit the https://kernel.org website to choose a kernel that you want +to install. Though only the latest stable and longterm (LTS) versions are +supported. +</p> +<div class="example"> +<pre class="example">Download the kernel and extract it +$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.7.6.tar.xz +$ tar xf linux-5.7.6.tar.xz + +Change directory into the kernel sources +$ cd linux-5.7.6 +</pre></div> + +<span id="Installing-dependencies"></span><h4 class="subsection">1.4.2 Installing dependencies</h4> + +<p>In order to compile the kernel you will need to install some dependencies. You +will need <code>libelf</code> to compile the kernel. If you want to configure using the menu +interface you will also need <code>ncurses</code>. +</p> +<div class="example"> +<pre class="example">The package manager asks to install if you are building more than one package, +so no need to run 'cpt i ...' +$ cpt b libelf ncurses +</pre></div> + +<p>In the vanilla kernel sources, you need perl to compile the kernel, but it can +be easily patched out. You will need to apply the following patch. Patch was +written by <a href="https://github.com/E5ten">E5ten</a>. You will need to obtain and +apply the patch in the kernel source directory. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch +$ patch -p1 &lt; kernel-no-perl.patch +</pre></div> + +<span id="Compiling-the-kernel"></span><h4 class="subsection">1.4.3 Compiling the kernel</h4> + +<p>Next step is configuring and building the kernel. You can check Gentoo&rsquo;s <a href="https://wiki.gentoo.org/wiki/Kernel/Configuration">kernel configuration guide</a> +to learn more about the matter. Overall, Gentoo Wiki is a good place to learn +about configuration according to your hardware. The following will assume a +monolithic kernel. +</p> +<div class="example"> +<pre class="example">$ make menuconfig +$ make +$ install -Dm755 $(make -s image_name) /boot/vmlinuz-linux +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="Making-your-system-bootable.html" accesskey="n" rel="next">Making your system bootable</a>, Previous: <a href="System-Configuration.html" accesskey="p" rel="prev">System Configuration</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Making-your-system-bootable.html b/src/docs/Making-your-system-bootable.html @@ -0,0 +1,106 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Making your system bootable (Carbs Linux User Manual)</title> + +<meta name="description" content="Making your system bootable (Carbs Linux User Manual)"> +<meta name="keywords" content="Making your system bootable (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Post_002dinstallation.html" rel="next" title="Post-installation"> +<link href="Kernel.html" rel="prev" title="Kernel"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Making-your-system-bootable"></span><div class="header"> +<p> +Next: <a href="Post_002dinstallation.html" accesskey="n" rel="next">Post-installation</a>, Previous: <a href="Kernel.html" accesskey="p" rel="prev">Kernel</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Making-your-system-bootable-1"></span><h3 class="section">1.5 Making your system bootable</h3> + +<p>In order to be able to boot your fresh system, wou will need an init-daemon, +init-scripts and a bootloader. The init daemon is already provided by busybox, +but you can optionally change it. +</p> +<span id="Installing-a-bootloader"></span><h4 class="subsection">1.5.1 Installing a bootloader</h4> + +<p>In the main repository, there is efibootmgr and grub to serve as bootloaders. +efibootmgr can be used as a standalone bootloader, or can be used to install +grub in a UEFI environment. efibootmgr is needed unless you are using a device +without UEFI support (or you really want to use BIOS for a reason). +</p> +<p>GRUB BIOS installation +</p> +<div class="example"> +<pre class="example">$ cpt b grub &amp;&amp; cpt i grub +$ grub-install --target=i386-pc /dev/sdX +$ grub-mkconfig -o /boot/grub/grub.cfg +</pre></div> + +<p>GRUB UEFI installation +</p> +<div class="example"> +<pre class="example">$ cpt b efibootmgr &amp;&amp; cpt i efibootmgr +$ cpt b grub &amp;&amp; cpt i grub + +$ grub-install --target=x86_64-efi \ + --efi-directory=esp \ + --bootloader-id=CarbsLinux + +$ grub-mkconfig -o /boot/grub/grub.cfg +</pre></div> + +<span id="Installing-init-scripts"></span><h4 class="subsection">1.5.2 Installing init scripts</h4> + +<p>Only thing left to do is installing the init-scripts, and now you are almost +ready to boot your system! +</p> +<div class="example"> +<pre class="example">$ cpt b carbs-init &amp;&amp; cpt i carbs-init +</pre></div> + +<span id="Generating-fstab"></span><h4 class="subsection">1.5.3 Generating fstab</h4> + +<p>You can now manually edit your fstab entry, or you can use the genfstab tool. +If you want to use the tool, exit the chroot and run the following: +</p> +<div class="example"> +<pre class="example">$ wget https://github.com/cemkeylan/genfstab/raw/master/genfstab +$ chmod +x genfstab +$ ./genfstab -U /mnt &gt;&gt; /mnt/etc/fstab +</pre></div> + + + + +</body> +</html> diff --git a/src/docs/Package-Manager.html b/src/docs/Package-Manager.html @@ -0,0 +1,70 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Package Manager (Carbs Linux User Manual)</title> + +<meta name="description" content="Package Manager (Carbs Linux User Manual)"> +<meta name="keywords" content="Package Manager (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="index.html" rel="up" title="Top"> +<link href="Usage.html" rel="next" title="Usage"> +<link href="Post_002dinstallation.html" rel="prev" title="Post-installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Package-Manager"></span><div class="header"> +<p> +Next: <a href="Init-System.html" accesskey="n" rel="next">Init System</a>, Previous: <a href="Installation.html" accesskey="p" rel="prev">Installation</a>, Up: <a href="index.html" accesskey="u" rel="up">Top</a> &nbsp; </p> +</div> +<hr> +<span id="Package-Manager-1"></span><h2 class="chapter">2 Package Manager</h2> + +<p>Carbs Linux uses its own package managing toolchain named <code>cpt</code>. It is a +fork of the <a href="https://github.com/kisslinux/kiss">kiss</a> package manager. Unlike +<code>kiss</code>, however, its main goal is being easily extendable. Instead of being +a single file package manager, it revolves around the shell library <code>cpt-lib</code>, +and many tools that wrap around it. +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Usage.html" accesskey="1">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Packaging-System.html" accesskey="2">Packaging System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Rsync-Repositories.html" accesskey="3">Rsync Repositories</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/src/docs/Packaging-System.html b/src/docs/Packaging-System.html @@ -0,0 +1,197 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Packaging System (Carbs Linux User Manual)</title> + +<meta name="description" content="Packaging System (Carbs Linux User Manual)"> +<meta name="keywords" content="Packaging System (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="Rsync-Repositories.html" rel="next" title="Rsync Repositories"> +<link href="cpt_002dbuild.html" rel="prev" title="cpt-build"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Packaging-System"></span><div class="header"> +<p> +Next: <a href="Rsync-Repositories.html" accesskey="n" rel="next">Rsync Repositories</a>, Previous: <a href="Usage.html" accesskey="p" rel="prev">Usage</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Packaging-System-1"></span><h3 class="section">2.2 Packaging System</h3> + +<p>A package is formed of several files, these are: +</p><ul> +<li> <samp>build</samp> +</li><li> <samp>sources</samp> +</li><li> <samp>checksums</samp> +</li><li> <samp>version</samp> +</li><li> <samp>depends</samp> +</li><li> <samp>post-install</samp> +</li><li> <samp>message</samp> +</li><li> <samp>test</samp> +</li></ul> + +<p>Any other file can be added to the package directory at the discretion of the +package maintainer. Everything in the package directory will also be added to the +package database that is located on &rsquo;/var/db/cpt/installed&rsquo;. These can be +patches, configuration files, etc. +</p> +<span id="build"></span><h4 class="subsection">2.2.1 <samp>build</samp></h4> + +<p>Typically <samp>build</samp> files are shell scripts that run commands to prepare the source +code to be installed on the target system. Even though we will be assuming that +the <samp>build</samp> file is a POSIX shell script (for portability&rsquo;s sake), <samp>build</samp> +files can be any executable program from binary programs to <code>perl</code> scripts. +</p> +<p>The contents of a build script do not need to follow a certain rule for the +package manager, except for the fact that the user needs the permission to +execute the file. +</p> +<p>An important advice is to append an &rsquo;-e&rsquo; to the shebang (#!/bin/sh -e) so that +the build script exits on compilation error. +</p> +<p>Build is run with three arguments (<code>$#</code>) +</p> +<ol> +<li> Location of the package directory (DESTDIR) +</li><li> Package version +</li><li> System architecture +</li></ol> + +<span id="sources"></span><h4 class="subsection">2.2.2 <samp>sources</samp></h4> + +<p><samp>sources</samp> file is a list of files and sources that will be put to the build +directory during the build process. Those can be remote sources (such as tarballs), +git repositories, and files that reside on the package directory. +</p> +<p>The syntax is pretty simple for the <samp>soures</samp> file; <tt>src dest</tt>. The +<code>dest</code> parameter is optional. It is the directory that the source will be +placed in. Here is the <samp>sources</samp> file for the <code>gst-plugins</code> package: +</p> +<div class="example"> +<pre class="example">https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.16.2.tar.xz good +https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.16.2.tar.xz bad +https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.16.2.tar.xz ugly +https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.16.2.tar.xz libav +</pre></div> + +<p>This file is read from the package manager as space seperated. Files that begin +with a &rsquo;#&rsquo; comment are ignored. The first value points to the location of the +source. +</p> +<p>If it starts with a protcol url, (such as ftp:// http:// https://) it will be +downloaded with <code>curl</code>. +</p> +<p>If the source is a git repository, it shall be prefixed with a <tt>git+</tt> git(1) will +be used to do a shallow clone of the repository. If the commit is suffixed by a +history pointer, git will checkout the relevant revision. So, +</p> +<div class="example"> +<pre class="example">git+git://example.com/pub/repo#v1.2.3 will checkout the tag named 'v1.2.3' +git+git://example.com/pub/repo#development will checkout the branch named 'development' +git+git://example.com/pub/repo#1a314s87 will checkout the commit named '1a314s87' +</pre></div> + +<p>Other files are assumed to be residing in the package directory. They should be +added with their paths relative to the package directory. +</p> + +<span id="checksums"></span><h4 class="subsection">2.2.3 <samp>checksums</samp></h4> + +<p>checksums file is generated by the <samp>cpt c pkg command</samp>. It is generated +according to the order of the sources file. That&rsquo;s why you shouldn&rsquo;t be editing +it manually. The checksums file is created with the digests of the files using +the sha256 algorithm. +</p> +<span id="version"></span><h4 class="subsection">2.2.4 <samp>version</samp></h4> + +<p>The version file includes the version of the software and the release number of +of the package on a space seperated format. The contents of the file should look +like below. +</p> +<div class="example"> +<pre class="example">1.3.2 1 +</pre></div> + +<p>The version should always match to the number of the upstream release. For +drastic changes that require a rebuild Those can be, +</p> +<ul> +<li> update of libraries that forces the package to be relinked +</li><li> change in the build scripts that affect the output of the package +</li></ul> + +<p>When a version bump occurs, the release should be reset to 1. +</p> +<span id="depends"></span><h4 class="subsection">2.2.5 <samp>depends</samp></h4> + +<p>This is a list of dependencies that must be installed before a package build. You +can append &ldquo;make&rdquo; after a dependency to mark a package is only required during +the build process of a package. Packages marked as a make dependency can be +removed after the build. There are also &ldquo;test&rdquo; dependencies. These dependencies +are only installed if either the <code>CPT_TEST</code> is set to 1, or the build is run +with the <samp>-t</samp> or <samp>--test</samp> options. So, a package package could have +the following <samp>depends</samp> file: +</p> +<div class="example"> +<pre class="example">linux-headers make +python test +zlib +</pre></div> + +<span id="post_002dinstall"></span><h4 class="subsection">2.2.6 <samp>post-install</samp></h4> + +<p><samp>post-install</samp> files have the same requirements as the build script. They +will be run after the package is installed as root (or as the user if the user +has write permissions on <code>CPT_ROOT</code>). +</p> +<span id="message"></span><h4 class="subsection">2.2.7 <samp>message</samp></h4> + +<p>This plaintext file will be outputted with <code>cat</code> after every package is +installed. +</p> +<span id="test"></span><h4 class="subsection">2.2.8 <samp>test</samp></h4> + +<p>Test files are mainly for the repository maintainer to test the packages, and +will only run if the user has the <code>CPT_TEST</code> variable set, or the build is +run with the <samp>-t</samp> or <samp>--test</samp> options. This script is run on the +build directory. It is run right after the build script is finished. +</p> +<hr> +<div class="header"> +<p> +Next: <a href="Rsync-Repositories.html" accesskey="n" rel="next">Rsync Repositories</a>, Previous: <a href="Usage.html" accesskey="p" rel="prev">Usage</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Post_002dinstallation.html b/src/docs/Post_002dinstallation.html @@ -0,0 +1,71 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Post-installation (Carbs Linux User Manual)</title> + +<meta name="description" content="Post-installation (Carbs Linux User Manual)"> +<meta name="keywords" content="Post-installation (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Package-Manager.html" rel="next" title="Package Manager"> +<link href="Making-your-system-bootable.html" rel="prev" title="Making your system bootable"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Post_002dinstallation"></span><div class="header"> +<p> +Previous: <a href="Making-your-system-bootable.html" accesskey="p" rel="prev">Making your system bootable</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Post_002dinstallation-1"></span><h3 class="section">1.6 Post-installation</h3> + +<p>The base installation is now complete, you can now fine tune your system +according to your needs. Rest of these instructions are completely optional. +</p> +<span id="Acquiring-kiss-repositories"></span><h4 class="subsection">1.6.1 Acquiring kiss repositories</h4> + +<p>While not 100% compatible with cpt, you can use kiss repositories in your +system the same way you are using the distribution repositories. Here is an +example for the KISS Linux Community repository. +</p> +<div class="example"> +<pre class="example">$ git clone https://github.com/kisslinux/community $HOME/repos/kiss-community +$ export CPT_PATH=$CPT_PATH:$HOME/repos/kiss-community/community +</pre></div> + +<p>NOTE: There are lots of packages on the KISS community repository that are also +on Carbs Linux main repository. I would advise giving lower priority to the KISS +community repository as it may affect other packages that you might install. +</p> + + +</body> +</html> diff --git a/src/docs/Preparing-Environment.html b/src/docs/Preparing-Environment.html @@ -0,0 +1,129 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Preparing Environment (Carbs Linux User Manual)</title> + +<meta name="description" content="Preparing Environment (Carbs Linux User Manual)"> +<meta name="keywords" content="Preparing Environment (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Chroot.html" rel="next" title="Chroot"> +<link href="Installation.html" rel="prev" title="Installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Preparing-Environment"></span><div class="header"> +<p> +Next: <a href="Chroot.html" accesskey="n" rel="next">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Preparing-Environment-1"></span><h3 class="section">1.1 Preparing Environment</h3> +<p>To install Carbs Linux, you will need a Live Linux ISO. For that purpose, you +can obtain a Gentoo or Void Linux live image. You can follow their instructions +to boot and setup your network. +</p> +<p>You will need the following programs in order to install Carbs Linux: +</p><ul> +<li> tar +</li><li> wget +</li><li> xz +</li><li> some form of base utilities (coreutils, sbase, busybox, etc.) +</li></ul> + +<p>Rest of these instructions will assume that you have set all of these up, and +will continue on that point. +</p> +<span id="Download"></span><h4 class="subsection">1.1.1 Download</h4> + +<p>First, we need to download the rootfs tarball. You can do the following in order +to obtain the rootfs. If you are using an i686 machine, replace the <code>x86_64</code> +with <code>i686</code>. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz +</pre></div> + +<p>We can then check the integrity of the tarball and do a signature verification. +Even thought these are optional, they are highly recommended. +</p> +<span id="Check-the-integrity-of-the-tarball-_0028Recommended_0029"></span><h4 class="subsection">1.1.2 Check the integrity of the tarball (Recommended)</h4> + +<p>All of the releases are saved in a single file named <samp>sha256sums.txt</samp>, but the +latest release is saved on <samp>carbs-rootfs.tar.xz.sha256</samp>. You can acquire and +verify the tarball. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/x86_64/carbs-rootfs.tar.xz.sha256 +$ sha256sum -c carbs-rootfs.tar.xz.sha256 +</pre></div> + +<span id="Verify-the-signature"></span><h4 class="subsection">1.1.3 Verify the signature</h4> + +<p>It is highly recommended to verify the signature of the tarball. You will need +GPG for this. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/releases/carbs-rootfs.tar.xz.sig +$ gpg --recv-keys FF484BDFEFCEF8FF +$ gpg --verify carbs-rootfs.tar.xz.sig +</pre></div> + +<span id="Extracting-the-tarball"></span><h4 class="subsection">1.1.4 Extracting the tarball</h4> + +<p>You will need to extract the tarball to your desired location. For partitioning, +you can follow <a href="https://wiki.archlinux.org/index.php/Partitioning">this guide</a>. +This will assume that you will be mounting your root partition to <samp>/mnt</samp>. +</p> +<div class="example"> +<pre class="example">$ mount /dev/sdx1 /mnt +$ tar xf carbs-rootfs.tar.xz -C /mnt +</pre></div> + +<span id="Obtain-the-chroot-helper"></span><h4 class="subsection">1.1.5 Obtain the chroot helper</h4> + +<p>You can obtain the <code>cpt-chroot</code> script in order to do a simple chroot into +your new root filesystem. +</p> +<div class="example"> +<pre class="example">$ wget https://dl.carbslinux.org/distfiles/cpt-chroot +$ chmod a+x cpt-chroot +</pre></div> + +<hr> +<div class="header"> +<p> +Next: <a href="Chroot.html" accesskey="n" rel="next">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/Rsync-Repositories.html b/src/docs/Rsync-Repositories.html @@ -0,0 +1,101 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Rsync Repositories (Carbs Linux User Manual)</title> + +<meta name="description" content="Rsync Repositories (Carbs Linux User Manual)"> +<meta name="keywords" content="Rsync Repositories (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="Setting-up-an-rsync-repository-for-distribution.html" rel="next" title="Setting up an rsync repository for distribution"> +<link href="Packaging-System.html" rel="prev" title="Packaging System"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Rsync-Repositories"></span><div class="header"> +<p> +Previous: <a href="Packaging-System.html" accesskey="p" rel="prev">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Rsync-Repositories-1"></span><h3 class="section">2.3 Rsync Repositories</h3> + +<p>Rsync repositories are simple to serve and simple to use. In the repository +directory, there needs to be a &rsquo;.rsync&rsquo; file that points to the remote of the +repository. This is used in order to fetch changes from the upstream. &rsquo;.rsync&rsquo; +file looks like this for the core repository: +</p> +<div class="example"> +<pre class="example">rsync://carbslinux.org/repo/core +</pre></div> + +<p>Rsync repositories have some few distinctions when it comes to fetching them. +They can be either synced individually or as a &ldquo;root&rdquo;. There are 2 important +files, those are <samp>.rsync</samp> and <samp>.rsync_root</samp>. Here is the Carbs Linux +rsync repository structure. +</p> +<div class="example"> +<pre class="example"> / + ----------------- + | | +.rsync core/ + ---------------- + | | + .rsync .rsync_root +</pre></div> + +<p>Unlike git repositories, they don&rsquo;t have a defined &ldquo;root&rdquo; directory. This is +both an advantage and a disadvantage. This way, we can sync individual +repositories, but that also means we need extra files to define root directories +and repository locations. Here is the content for each of these files: +</p> +<div class="example"> +<pre class="example">/.rsync: rsync://carbslinux.org/repo +/core/.rsync: rsync://carbslinux.org/repo/core +/core/.rsync_root: .. +</pre></div> + +<p>The <samp>.rsync_root</samp> file on the core repository points to the upper directory. +If a <samp>.rsync</samp> file exists on the upper directory, this means that is the whole +repository and will sync the entire repository instead of each individual repository. +</p> +<p>If the upper directory doesn&rsquo;t have this <samp>.rsync</samp> file, this means that this +is an individual repository, and the package manager will fetch accordingly. +</p> +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Setting-up-an-rsync-repository-for-distribution.html" accesskey="1">Setting up an rsync repository for distribution</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + + + + +</body> +</html> diff --git a/src/docs/Setting-up-an-rsync-repository-for-distribution.html b/src/docs/Setting-up-an-rsync-repository-for-distribution.html @@ -0,0 +1,99 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Setting up an rsync repository for distribution (Carbs Linux User Manual)</title> + +<meta name="description" content="Setting up an rsync repository for distribution (Carbs Linux User Manual)"> +<meta name="keywords" content="Setting up an rsync repository for distribution (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Rsync-Repositories.html" rel="up" title="Rsync Repositories"> +<link href="Init-System.html" rel="next" title="Init System"> +<link href="Rsync-Repositories.html" rel="prev" title="Rsync Repositories"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Setting-up-an-rsync-repository-for-distribution"></span><div class="header"> +<p> +Up: <a href="Rsync-Repositories.html" accesskey="u" rel="up">Rsync Repositories</a> &nbsp; </p> +</div> +<hr> +<span id="Setting-up-an-rsync-repository-for-distribution-1"></span><h4 class="subsection">2.3.1 Setting up an rsync repository for distribution</h4> + +<p>Carbs Linux repositories automatically sync from the git repostitories and serve +it through the rsync daemon. Here is a sample shell script that I use in order to +sync repositories. Feel free to customize for your own use. +</p> +<pre class="verbatim"> #!/bin/sh + HOSTNAME=&quot;rsync://carbslinux.org/repo&quot; + GITDIR=&quot;/pub/git/repo&quot; + SHAREDIR=&quot;/pub/share/repo&quot; + git -C &quot;$GITDIR&quot; pull + + rsync -avcC --delete --include=core --exclude=.rsync,.rsync_root &quot;$GITDIR/.&quot; &quot;$SHAREDIR&quot; + + printf '%s\n' &quot;$HOSTNAME&quot; &gt; &quot;$GITDIR/.rsync&quot; + for dir in &quot;$GITDIR/&quot;*; do + [ -d &quot;$dir&quot; ] || continue + [ -f &quot;$dir/.rsync&quot; ] || + printf '%s/%s\n' &quot;$HOSTNAME&quot; &quot;${dir##*/}&quot; &gt; &quot;$dir/.rsync&quot; + printf '..\n' &gt; &quot;$dir/.rsync_root&quot; + done +</pre> +<p>You can then create an <strong>rsync</strong> user for serving the repositories. +</p> +<div class="example"> +<pre class="example">$ adduser -SD rsync +</pre></div> + +<p>Create <samp>/etc/rsyncd.conf</samp> and a service configuration as well. +</p> +<pre class="verbatim"> + uid = rsync + gid = rsync + address = example.com + max connections = 10 + use chroot = yes + + [repo] + path = /pub/share/repo + comment = My repository +</pre> +<p>Create a service file at <samp>/etc/sv/rsync/run</samp> (runit): +</p> +<div class="example"> +<pre class="example">#!/bin/sh +exec rsync --daemon --no-detach +</pre></div> + + + +</body> +</html> diff --git a/src/docs/System-Configuration.html b/src/docs/System-Configuration.html @@ -0,0 +1,77 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>System Configuration (Carbs Linux User Manual)</title> + +<meta name="description" content="System Configuration (Carbs Linux User Manual)"> +<meta name="keywords" content="System Configuration (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Installation.html" rel="up" title="Installation"> +<link href="Kernel.html" rel="next" title="Kernel"> +<link href="Chroot.html" rel="prev" title="Chroot"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="System-Configuration"></span><div class="header"> +<p> +Next: <a href="Kernel.html" accesskey="n" rel="next">Kernel</a>, Previous: <a href="Chroot.html" accesskey="p" rel="prev">Chroot</a>, Up: <a href="Installation.html" accesskey="u" rel="up">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="System-Configuration-1"></span><h3 class="section">1.3 System Configuration</h3> + +<p>After you have finished installing some extra packages, you can configure your +system to your liking. +</p> +<span id="Configuring-hostname-_0028recommended_0029"></span><h4 class="subsection">1.3.1 Configuring hostname (recommended)</h4> + +<p>You might want to add a hostname, especially in a networked environment. Your +hostname will default to &rsquo;carbslinux&rsquo; unless you set this. +</p> +<div class="example"> +<pre class="example">$ echo your-hostname &gt; /etc/hostname +</pre></div> + +<span id="Setting-up-hosts-file-_0028optional_0029"></span><h4 class="subsection">1.3.2 Setting up hosts file (optional)</h4> + +<p>You can edit your /etc/hosts file, which is the static lookup table for host +names. By default, there are two entries for localhost which are OKAY. You can +replace the &rsquo;localhost&rsquo; part of these entries to your hostname. +</p> +<div class="example"> +<pre class="example">127.0.0.1 localhost.localdomain localhost +::1 localhost.localdomain localhost ip6-localhost +</pre></div> + + + + +</body> +</html> diff --git a/src/docs/Usage.html b/src/docs/Usage.html @@ -0,0 +1,113 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Usage (Carbs Linux User Manual)</title> + +<meta name="description" content="Usage (Carbs Linux User Manual)"> +<meta name="keywords" content="Usage (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Package-Manager.html" rel="up" title="Package Manager"> +<link href="cpt_002dalternatives.html" rel="next" title="cpt-alternatives"> +<link href="Package-Manager.html" rel="prev" title="Package Manager"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="Usage"></span><div class="header"> +<p> +Next: <a href="Packaging-System.html" accesskey="n" rel="next">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> +<hr> +<span id="Usage-1"></span><h3 class="section">2.1 Usage</h3> +<p><code>cpt</code> is formed of many tools combined in a single environment, similar +to <code>git</code>. When you run <code>cpt</code> without any arguments, it will show +all available tools and their explanations. Here is an example call with extra +scripts on my system: +</p> +<div class="example"> +<pre class="example">-&gt; Carbs Packaging Tool +-&gt; add Commit the current directory as a new package +-&gt; alternatives List and swap to alternatives +-&gt; build Build a package +-&gt; bump Commit the current directory as a version bump +-&gt; cargo-urlgen Create static cargo sources for Rust packages +-&gt; cargolock-urlgen Convert the given Cargo.lock file to sources +-&gt; cat Concatanate package files in the installed package database +-&gt; changelog Print the git log of the specific package +-&gt; chbuild Create/destroy temporary chroots +-&gt; checkmissing Verify package manifests +-&gt; checksum Generate checksums +-&gt; chroot Enter a chroot +-&gt; commit Commit a package without the prefix of 'package:' +-&gt; depends Display a package's dependencies +-&gt; download Download sources for the given package +-&gt; exec Execute a command inside the alternatives system +-&gt; export Turn an installed package into a CPT tarball +-&gt; fetch Fetch repositories +-&gt; fork Fork a package to the current directory +-&gt; getchoice Prints the full path to a file in the alternatives system. +-&gt; install Install a package +-&gt; link Link a forked package's files to the other repository +-&gt; list List installed packages +-&gt; maintainer Find the maintainer of a package +-&gt; manifest Display all files owned by a package +-&gt; manifest-tree Display all files owned by a package with a tree view +-&gt; new Create a boilerplate CPT package +-&gt; orphans List orphaned packages +-&gt; owns Check which package owns a file +-&gt; rel Bump the release number of a package +-&gt; remove Remove a package +-&gt; repodepends Display a package's dependencies in the repository +-&gt; reporevdepends Display packages on the repository which depend on package +-&gt; reset Remove all packages except for the base +-&gt; revdepends Display packages which depend on package +-&gt; search Search for a package +-&gt; size Show the size on disk for a package +-&gt; source Extract sources of a given package to the current directory +-&gt; update Check for updates +</pre></div> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="cpt_002dalternatives.html" accesskey="1"><code>cpt-alternatives</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="cpt_002dbuild.html" accesskey="2"><code>cpt-build</code></a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top"> +</td></tr> +</table> + +<hr> +<div class="header"> +<p> +Next: <a href="Packaging-System.html" accesskey="n" rel="next">Packaging System</a>, Up: <a href="Package-Manager.html" accesskey="u" rel="up">Package Manager</a> &nbsp; </p> +</div> + + + +</body> +</html> diff --git a/src/docs/cpt_002dalternatives.html b/src/docs/cpt_002dalternatives.html @@ -0,0 +1,82 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>cpt-alternatives (Carbs Linux User Manual)</title> + +<meta name="description" content="cpt-alternatives (Carbs Linux User Manual)"> +<meta name="keywords" content="cpt-alternatives (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Usage.html" rel="up" title="Usage"> +<link href="cpt_002dbuild.html" rel="next" title="cpt-build"> +<link href="Usage.html" rel="prev" title="Usage"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="cpt_002dalternatives"></span><div class="header"> +<p> +Next: <a href="cpt_002dbuild.html" accesskey="n" rel="next"><code>cpt-build</code></a>, Up: <a href="Usage.html" accesskey="u" rel="up">Usage</a> &nbsp; </p> +</div> +<hr> +<span id="cpt_002dalternatives-1"></span><h4 class="subsection">2.1.1 <code>cpt-alternatives</code></h4> + +<p>You can list and swap to alternatives using <code>cpt-alternatives</code>, or +<code>cpt a</code> for short. When run without alternatives, it will list +alternatives. It can read from standard input if <samp>-</samp> is given as an +argument. +</p> +<span id="Examples"></span><h4 class="subsubsection">2.1.1.1 Examples</h4> + +<p>List alternatives +</p> +<div class="example"> +<pre class="example">$ cpt-alternatives +ncurses /usr/bin/clear +ncurses /usr/bin/reset +</pre></div> + +<p>Swap to <code>clear</code> from <code>ncurses</code>. +</p> +<div class="example"> +<pre class="example">$ cpt-alternatives ncurses /usr/bin/clear +-&gt; Swapping '/usr/bin/clear' from 'busybox' to 'ncurses' +</pre></div> + +<p>Swap in bulk (all of sbase). +</p> +<div class="example"> +<pre class="example">$ cpt a | grep ^sbase | cpt a - +</pre></div> + + + + +</body> +</html> diff --git a/src/docs/cpt_002dbuild.html b/src/docs/cpt_002dbuild.html @@ -0,0 +1,65 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>cpt-build (Carbs Linux User Manual)</title> + +<meta name="description" content="cpt-build (Carbs Linux User Manual)"> +<meta name="keywords" content="cpt-build (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="index.html" rel="start" title="Top"> +<link href="Usage.html" rel="up" title="Usage"> +<link href="Packaging-System.html" rel="next" title="Packaging System"> +<link href="cpt_002dalternatives.html" rel="prev" title="cpt-alternatives"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<span id="cpt_002dbuild"></span><div class="header"> +<p> +Previous: <a href="cpt_002dalternatives.html" accesskey="p" rel="prev"><code>cpt-alternatives</code></a>, Up: <a href="Usage.html" accesskey="u" rel="up">Usage</a> &nbsp; </p> +</div> +<hr> +<span id="cpt_002dbuild-1"></span><h4 class="subsection">2.1.2 <code>cpt-build</code></h4> + +<p>cpt-build will build given packages and their dependencies. If multiple packages +are specified, it will ask to install the packages as well. +</p> +<span id="Options"></span><h4 class="subsubsection">2.1.2.1 Options</h4> +<p><code>cpt-build</code> will accept the following options: +</p> +<ul> +<li> <samp>-y</samp>, <samp>--no-prompt</samp> &ndash; Do not prompt for confirmation +</li><li> <samp></samp> +</li></ul> + + + + +</body> +</html> diff --git a/src/docs/index.html b/src/docs/index.html @@ -0,0 +1,108 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<html> +<!-- Copyright (C) 2020 Cem Keylan + +Licensed under Gnu Free Documentation License. --> +<!-- Created by GNU Texinfo 6.7, http://www.gnu.org/software/texinfo/ --> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<title>Top (Carbs Linux User Manual)</title> + +<meta name="description" content="Top (Carbs Linux User Manual)"> +<meta name="keywords" content="Top (Carbs Linux User Manual)"> +<meta name="resource-type" content="document"> +<meta name="distribution" content="global"> +<meta name="Generator" content="makeinfo"> +<link href="#Top" rel="start" title="Top"> +<link href="Installation.html" rel="next" title="Installation"> +<style type="text/css"> +<!-- +a.summary-letter {text-decoration: none} +blockquote.indentedblock {margin-right: 0em} +div.display {margin-left: 3.2em} +div.example {margin-left: 3.2em} +div.lisp {margin-left: 3.2em} +kbd {font-style: oblique} +pre.display {font-family: inherit} +pre.format {font-family: inherit} +pre.menu-comment {font-family: serif} +pre.menu-preformatted {font-family: serif} +span.nolinebreak {white-space: nowrap} +span.roman {font-family: initial; font-weight: normal} +span.sansserif {font-family: sans-serif; font-weight: normal} +ul.no-bullet {list-style: none} +--> +</style> + + +</head> + +<body lang="en"> +<h1 class="settitle" align="center">Carbs Linux User Manual</h1> + + + +<span id="Top"></span><div class="header"> +<p> +Next: <a href="Installation.html" accesskey="n" rel="next">Installation</a> &nbsp; </p> +</div> +<hr> +<span id="Carbs-Linux-User-Manual"></span><h1 class="top">Carbs Linux User Manual</h1> + +<p>This is the full documentation of Carbs Linux, from the details of the +distribution, installation, to the package manager. It is not yet complete. +</p> + +<p>This documentation is also available in the distribution which can be read +by either running <code>info carbslinux</code> or reading <samp>/usr/share/doc/carbslinux.txt</samp> +with your favorite pager. You can install either the <code>info</code> or <code>texinfo</code> +for doing the first. +</p> + +<table class="menu" border="0" cellspacing="0"> +<tr><td align="left" valign="top">&bull; <a href="Installation.html" accesskey="1">Installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing Carbs Linux +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Package-Manager.html" accesskey="2">Package Manager</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Carbs Linux Packaging Tools +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Init-System.html" accesskey="3">Init System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Configuring the init system +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> + +</pre></th></tr><tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">&mdash; Detailed Menu Listing &mdash; + +Overview of Installation + +</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Preparing-Environment.html" accesskey="4">Preparing Environment</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Getting ready to chroot +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Chroot.html" accesskey="5">Chroot</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Going inside your new system +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="System-Configuration.html" accesskey="6">System Configuration</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Customizing for your personal use +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Kernel.html" accesskey="7">Kernel</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Compiling your own kernel +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Making-your-system-bootable.html" accesskey="8">Making your system bootable</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Installing init and bootloader +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Post_002dinstallation.html" accesskey="9">Post-installation</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Acquiring more packages and repositories +</td></tr> +<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment"> + +Overview of Package manager + +</pre></th></tr><tr><td align="left" valign="top">&bull; <a href="Usage.html">Usage</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Using Carbs Packaging Tools +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Packaging-System.html">Packaging System</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">More detail on creating packages +</td></tr> +<tr><td align="left" valign="top">&bull; <a href="Rsync-Repositories.html">Rsync Repositories</a></td><td>&nbsp;&nbsp;</td><td align="left" valign="top">Information on using or creating rsync repositories +</td></tr> +</table> + +<hr> +<div class="header"> +<p> +Next: <a href="Installation.html" accesskey="n" rel="next">Installation</a> &nbsp; </p> +</div> + + + +</body> +</html>