diff options
Diffstat (limited to 'docs/install.txt')
-rw-r--r-- | docs/install.txt | 479 |
1 files changed, 0 insertions, 479 deletions
diff --git a/docs/install.txt b/docs/install.txt deleted file mode 100644 index ba1899c..0000000 --- a/docs/install.txt +++ /dev/null @@ -1,479 +0,0 @@ - ____________________ - - INSTALLATION GUIDE - ____________________ - - -These are the step-by-step instructions for installing Carbs Linux. It -can be acquired as plain-text to be viewed offline with a pager from -<https://carbslinux.org/install.txt>. - -,---- -| curl -sL https://carbslinux.org/install.txt | less -`---- - -1. Preparing Environment -.. 1. Download -.. 2. Signature verification -.. 3. Extracting the tarball -.. 4. Obtain the chroot helper -2. Chroot -.. 1. Setting up repositories -..... 1. Obtaining from git -..... 2. Obtaining from rsync -..... 3. Making the package manager use the repositories -.. 2. Updating packages -.. 3. Installing packages -.. 4. Essential Software -.. 5. Obtaining the documentation -3. System Configuration -.. 1. Configuring hostname -.. 2. Hosts file -4. Kernel -.. 1. Obtaining the kernel sources -.. 2. Kernel dependencies -.. 3. Building the kernel -5. Making your system bootable -.. 1. Bootloader -..... 1. GRUB BIOS installation -..... 2. GRUB UEFI installation -.. 2. Init scripts -.. 3. Fstab -6. Post-installation -.. 1. KISS repositories - - -1 Preparing Environment -======================= - - 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. - - You will need the following programs in order to install Carbs Linux: - - - tar - - wget - - xz - - some form of base utilities (coreutils, sbase, busybox, etc.) - - Rest of these instructions will assume that you have set all of these - up, and will continue on that point. - - -1.1 Download -~~~~~~~~~~~~ - - 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 `x86_64' with `i686'. We are setting this in a - URL variable so that we don't have to write it every time. - - ,---- - | wget $URL/carbs-rootfs.tar.xz.sha256 - | sha256sum -c carbs-rootfs.tar.xz.sha256 - `---- - - -1.2 Signature verification -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - It is highly recommended to verify the signature of the tarball. You - will need GPG for this. - - ,---- - | wget $URL/carbs-rootfs.tar.xz.sig - | gpg --recv-keys FF484BDFEFCEF8FF - | gpg --verify carbs-rootfs.tar.xz.sig - `---- - - -1.3 Extracting the tarball -~~~~~~~~~~~~~~~~~~~~~~~~~~ - - You will need to extract the tarball to your desired location. For - partitioning, you can follow [this guide]. This will assume that you - will be mounting your root partition to `/mnt'. - - ,---- - | mount /dev/sdx1 /mnt - | tar xf carbs-rootfs.tar.xz -C /mnt - `---- - - -[this guide] <https://wiki.archlinux.org/index.php/Partitioning> - - -1.4 Obtain the chroot helper -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - You can obtain the `cpt-chroot' script in order to do a simple chroot - into your new root filesystem. - - ,---- - | wget https://dl.carbslinux.org/distfiles/cpt-chroot - | chmod a+x cpt-chroot - `---- - - -2 Chroot -======== - - Chroot into Carbs Linux! - - ,---- - | ./cpt-chroot /mnt - `---- - - -2.1 Setting up repositories -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Newest tarballs do not come with repositories, so you will need to - manually obtain them, and set your `CPT_PATH' environment - variable. Carbs Linux repositories can either be obtained by `git' or - `rsync'. 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 `git' itself. - - The following guide will assume that you put the repositories into - `~/repos/' directory, but you can put the repositories into any - directory you want. So go ahead and create that directory: - - ,---- - | mkdir -p $HOME/repos - `---- - - -2.1.1 Obtaining from git ------------------------- - - 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. - - - git://git.carbslinux.org/repository - - <https://github.com/carbslinux/repository> - - ,---- - | git clone git://git.carbslinux.org/repository $HOME/repos/carbs - `---- - - -2.1.2 Obtaining from rsync --------------------------- - - Carbs Linux rsync repositories live in rsync://carbslinux.org/repo. In - order to obtain it, run the following: - - ,---- - | rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs - `---- - - -2.1.3 Making the package manager use the repositories ------------------------------------------------------ - - In your shell's configuration file, or in your `~/.profile' file, add - the following lines: - - ,---- - | 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 - `---- - - -2.2 Updating packages -~~~~~~~~~~~~~~~~~~~~~ - - 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. - - ,---- - | cpt-update && cpt-update - `---- - - -2.3 Installing packages -~~~~~~~~~~~~~~~~~~~~~~~ - - 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. "Package" is not actually a package - and is given as an example. - - ,---- - | cpt-build package - | cpt-install package - `---- - - -2.4 Essential Software -~~~~~~~~~~~~~~~~~~~~~~ - - Here is a list of software that you might want to have on your system. - - *BOOTLOADERS* - - - efibootmgr - - grub - - *FILESYSTEMS* - - - e2fsprogs - - dosfstools - - ntfs-3g - - *NETWORKING* - - - dhcpcd - - wpa_supplicant - - *TEXT EDITORS* - - - nano - - vim - - neatvi - - emacs - - emacs-nox (terminal-only version of emacs) - - *USER SHELLS* - - - bash - - zsh - - oksh - - rc - - *POSIX BASE UTILITIES* - - - busybox - - sbase - - coreutils - - *DOCUMENTATION* - - - carbs-docs - - man-pages - - man-pages-posix - - -2.5 Obtaining the documentation -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - 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. - - ,---- - | # Install the documentation. - | cpt b carbs-docs && 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 && cpt i info - | - | # You can then run info and navigate through the documentation. - | info carbslinux - `---- - - -3 System Configuration -====================== - - After you have finished installing some extra packages, you can - configure your system to your liking. - - -3.1 Configuring hostname -~~~~~~~~~~~~~~~~~~~~~~~~ - - You might want to add a hostname, especially in a networked - environment. Your hostname will default to 'carbslinux' unless you set - this. - - ,---- - | echo your-hostname > /etc/hostname - `---- - - -3.2 Hosts file -~~~~~~~~~~~~~~ - - 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 'localhost' part of these entries to - your hostname. - - ,---- - | 127.0.0.1 localhost.localdomain localhost - | ::1 localhost.localdomain localhost ip6-localhost - `---- - - -4 Kernel -======== - - Kernel isn't managed under the main repositories, even though you - could package one for your personal use. Here is an [example kernel - package], which you will need to reconfigure for your specific setup - if you want to make use of it. - - -[example kernel package] -<https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux> - -4.1 Obtaining the kernel sources -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - 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. - - ,---- - | # Download the kernel and extract it - | wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.1.tar.xz - | tar xf linux-5.9.1.tar.xz - | - | # Change directory into the kernel sources - | cd linux-5.9.1 - `---- - - -4.2 Kernel dependencies -~~~~~~~~~~~~~~~~~~~~~~~ - - In order to compile the kernel you will need to install some - dependencies. You will need `libelf', and `bison' to compile the - kernel. If you want to configure using the menu interface you will - also need `ncurses'. - - ,---- - | # 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 - `---- - - 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 [E5ten]. You will need to obtain and apply - the patch in the kernel source directory. - - ,---- - | wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch - | patch -p1 < kernel-no-perl.patch - `---- - - -[E5ten] <https://github.com/E5ten> - - -4.3 Building the kernel -~~~~~~~~~~~~~~~~~~~~~~~ - - Next step is configuring and building the kernel. You can check - Gentoo's [kernel configuration guide] 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. - - ,---- - | make menuconfig - | make - | install -Dm755 $(make -s image_name) /boot/vmlinuz-linux - `---- - - -[kernel configuration guide] -<https://wiki.gentoo.org/wiki/Kernel/Configuration> - - -5 Making your system bootable -============================= - - 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. - - -5.1 Bootloader -~~~~~~~~~~~~~~ - - 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). - - -5.1.1 GRUB BIOS installation ----------------------------- - - ,---- - | cpt b grub && cpt i grub - | grub-install --target=i386-pc /dev/sdX - | grub-mkconfig -o /boot/grub/grub.cfg - `---- - - -5.1.2 GRUB UEFI installation ----------------------------- - - ,---- - | cpt b efibootmgr && cpt i efibootmgr - | cpt b grub && cpt i grub - | - | grub-install --target=x86_64-efi \ - | --efi-directory=esp \ - | --bootloader-id=CarbsLinux - | - | grub-mkconfig -o /boot/grub/grub.cfg - `---- - - -5.2 Init scripts -~~~~~~~~~~~~~~~~ - - Only thing left to do is installing the init-scripts, and now you are - almost ready to boot your system! - - ,---- - | cpt b carbs-init && cpt i carbs-init - `---- - - -5.3 Fstab -~~~~~~~~~ - - 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: - - ,---- - | wget https://github.com/cemkeylan/genfstab/raw/master/genfstab - | chmod +x genfstab - | ./genfstab -U /mnt >> /mnt/etc/fstab - `---- - - -6 Post-installation -=================== - - The base installation is now complete, you can now fine tune your - system according to your needs. Rest of these instructions are - completely optional. You can check the rest of the documentation to - learn more about the system. - - -6.1 KISS repositories -~~~~~~~~~~~~~~~~~~~~~ - - 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. |