From d00896a78eedb10c3c4a65b38852caeafad5cd09 Mon Sep 17 00:00:00 2001 From: Cem Keylan Date: Mon, 25 Oct 2021 15:53:13 +0200 Subject: Delete install.org and put it into gitignore --- .gitignore | 1 + content/install.org | 352 ---------------------------------------------------- 2 files changed, 1 insertion(+), 352 deletions(-) delete mode 100644 content/install.org diff --git a/.gitignore b/.gitignore index 1c38630..e84d2e1 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /.cache/ /public/ /static/ +/content/install.org diff --git a/content/install.org b/content/install.org deleted file mode 100644 index 19397fc..0000000 --- a/content/install.org +++ /dev/null @@ -1,352 +0,0 @@ -# Created 2021-08-14 Sat 17:54 -#+TITLE: Carbs Linux Installation Guide -#+AUTHOR: Cem Keylan -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]]. - -#+begin_src sh - curl -sL https://carbslinux.org/install.txt | less -#+end_src - -#+toc: headlines 3 local -* 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. - -** 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. - -#+begin_src sh - URL=https://dl.carbslinux.org/releases/x86_64 - wget $URL/carbs-rootfs.tar.xz.sha256 - sha256sum -c carbs-rootfs.tar.xz.sha256 -#+end_src - -** Signature verification -It is highly recommended to verify the signature of the tarball. You will need -the OpenBSD tool =signify(1)= for this. Many distributions provide a package for -it, if you are using a Carbs Linux host, you can also install the package -=otools= which provides =signify=. Download the signature first. - -#+begin_src sh - wget $URL/carbs-rootfs.tar.xz.sig -#+end_src - -The signature file should say something similar to - -#+results: -: untrusted comment: verify with carbslinux-2021.08.pub -: RWTK4GFDD7JiohUHBeJXuKw+/P3K4ZRR8jQud0iOxNDbn7WCFxQsxt9FUNSEiXfLjkm1Ez8c3esRG8oydrsFUFpBGtekFt5obgo= - - -Grab the key (which probably should be the latest one) that is written on the -file from [[https://dl.carbslinux.org/keys/]] so you can verify the signature. The -latest Signify public key is also available on the [[https://git.carbslinux.org/repository][package repository]], so you can -check the validity of the public key from multiple locations, or just copy paste -that portion to a file and use that instead. - -#+begin_src sh - PUBKEY=carbslinux-2021.08.pub - wget https://dl.carbslinux.org/keys/$PUBKEY -#+end_src - -You can now verify the distribution tarball with signify. - -#+begin_src sh - signify -V -m carbs-rootfs.tar.xz -p $PUBKEY -#+end_src - -If everything went alright, this should output: - -#+begin_example - Signature Verified -#+end_example - - - -** Extracting the tarball -You will need to extract the tarball to your desired location. For partitioning, -you can follow [[https://wiki.archlinux.org/index.php/Partitioning][this guide]]. This will assume that you will be mounting your root -partition to =/mnt=. - -#+begin_src sh - mount /dev/sdx1 /mnt - tar xf carbs-rootfs.tar.xz -C /mnt -#+end_src - -* Chroot -Chroot into Carbs Linux by running the chroot helper inside the rootfs! - -#+begin_src sh - /mnt/bin/cpt-chroot /mnt -#+end_src - -** 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: - -#+begin_src sh - mkdir -p $HOME/repos -#+end_src - -*** 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. - -- https://git.carbslinux.org/repository -- https://git.sr.ht/~carbslinux/repository - -#+begin_src sh - git clone git://git.carbslinux.org/repository $HOME/repos/carbs -#+end_src - -*** Obtaining from rsync - -Carbs Linux rsync repositories live in rsync://carbslinux.org/repo. In -order to obtain it, run the following: - -#+begin_src sh - rsync -avc rsync://carbslinux.org/repo $HOME/repos/carbs -#+end_src - -*** Making the package manager use the repositories - -In your shell's configuration file, or in your =~/.profile= file, add the -following lines: - -#+begin_src sh - 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 -#+end_src - -** 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. - -#+begin_src sh - cpt-update && cpt-update -#+end_src - -** 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. - -#+begin_src sh - cpt-build package - cpt-install package -#+end_src - -** Essential Software -Here is a small list of software that you might want to have on your system as -you are setting up. You might want to check the *Software* section in the full -documentation to learn more about other packaged software. - -*BOOTLOADERS* - -- efibootmgr -- grub - -*FILESYSTEMS* - -- e2fsprogs -- dosfstools -- ntfs-3g - -*NETWORKING* - -- dhcpcd -- wpa_supplicant - -*TEXT EDITORS* - -- nano -- vim - -*DOCUMENTATION* - -- carbs-docs -- man-pages -- man-pages-posix - -** Obtaining the documentation -All the documentation for Carbs Linux can be found on a single info manual to be -viewed offline. You can obtain either =texinfo= or the =info= packages in order -to view the documentation. - -#+begin_src sh - # 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 -#+end_src - -* System Configuration -After you have finished installing some extra packages, you can configure your -system to your liking. - -** Configuring hostname -You might want to add a hostname, especially in a networked environment. Your -hostname will default to 'carbslinux' unless you set this. - -#+begin_src sh - echo your-hostname > /etc/hostname -#+end_src - -** 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. - -#+begin_example - 127.0.0.1 localhost.localdomain localhost - ::1 localhost.localdomain localhost ip6-localhost -#+end_example - -* Kernel -Kernel isn't managed under the main repositories, even though you could package -one for your personal use. Here is an [[https://github.com/cemkeylan/kiss-repository/tree/master/personal/linux][example kernel package]], which you will -need to reconfigure for your specific setup if you want to make use of it. - -** 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. - -#+begin_src sh - # 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 -#+end_src - -** 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=. - -#+begin_src sh - # 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 -#+end_src - -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 [[https://github.com/E5ten][E5ten]]. You will need to obtain and apply the patch in the kernel -source directory. - -#+begin_src sh - wget https://dl.carbslinux.org/distfiles/kernel-no-perl.patch - patch -p1 < kernel-no-perl.patch -#+end_src - -** Building the kernel -Next step is configuring and building the kernel. You can check Gentoo's -[[https://wiki.gentoo.org/wiki/Kernel/Configuration][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. - -#+begin_src sh - make menuconfig - make - install -Dm755 $(make -s image_name) /boot/vmlinuz-linux -#+end_src - -* 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. - -** 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). - -*** GRUB BIOS installation - -#+begin_src sh - cpt b grub && cpt i grub - grub-install --target=i386-pc /dev/sdX - grub-mkconfig -o /boot/grub/grub.cfg -#+end_src - -*** GRUB UEFI installation - -#+begin_src sh - 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 -#+end_src - -** Init scripts -Only thing left to do is installing the init-scripts, and now you are almost -ready to boot your system! - -#+begin_src sh - cpt b carbs-init && cpt i carbs-init -#+end_src - -** 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: - -#+begin_src sh - wget https://github.com/cemkeylan/genfstab/raw/master/genfstab - chmod +x genfstab - ./genfstab -U /mnt >> /mnt/etc/fstab -#+end_src - -* 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. - -** KISS repositories -There have been recent changes to the =kiss= package manager that breaks -compatibility with =cpt=. These changes throw away the entire premise of their -"static" packaging system. =cpt= will never implement those changes, so don't -expect any KISS package that was changed during or after July 2021 to work with -=cpt=. -- cgit v1.2.3