split linux distros to their own sections

This commit is contained in:
dtb 2022-11-24 12:32:04 -05:00
parent 813e5ab1c4
commit ca9cfe7045
5 changed files with 165 additions and 153 deletions

60
wiki/unix/alpine.m4 Normal file
View File

@ -0,0 +1,60 @@
_header(`Alpine')
<P>
Alpine Linux is a small Linux distribution based on musl libc.
Its main purpose is to serve as a server distribution, however many have found use for it as a desktop distribution.
</P>
_bibliography(`
_bentr(`<A HREF="https://pkgs.alpinelinux.org/contents">Alpine repositories content search</A>')
')
<H5>Bootstrapping</H5>
<P>
Alpine's bootstrapping procedure is quite manual; you should probably use _program(`setup-alpine').
However, it is possible and quite easy to perform the steps manually.
</P>
<UL>
<LI>Copy over the contents of _file(`/etc/apk/keys') to _file(`/mnt/etc/apk/keys')</LI>
<LI>
Add newline-delimited mirrors to _file(`/mnt/etc/apk/repositories'), such as these if you wish to use the _code(`edge') branch:
<PRE>
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing
</PRE>
_code(`edge') may be replaced with a stable branch, the latest being _code(`v3.17') as of writing.
</LI>
<LI>
Run _command(`apk --root /mnt add --initdb alpine-base').
This is an ordinary _man(`apk-add(8)') call; you may wish to install necessities such as a kernel, firmware, and a bootloader at the same time.
</LI>
</UL>
<P>
Alpine does not have a _man(`chroot(1)') helper; you must manually do that with a one-liner such as
_code(`for i in dev proc sys; do mount -o bind "/$i" "/mnt/$i"; done; cp /etc/resolv.conf /mnt/etc/resolv.conf')
which you can chroot into.
</P>
<P>
After chrooting in, you must configure basics such as users, passwords, _man(`fstab(5)'), and the bootloader yourself.
</P>
<H5>Always install manual pages</H5>
<P>
Alpine doesn't include man pages in program packages to save on space, instead keeping them in _code(`[<I>package</I>]-doc') sibling packages.
To always install doc packages with program packages, _code(`apk add docs').
</P>
_subheader(`postmarketOS')
<P>
postmarketOS is an Alpine-based Linux software distribution that makes configuring and using Linux easy on mobile devices.
</P>
<H5>Random MAC address generation on Wifi</H5>
<P>
By default, postmarketOS will generate a random software MAC address when connecting to a new WLAN network.
You can disable this by adding a NetworkManager rule.
In _code(`/etc/NetworkManager/conf.d/') you can make a file with any name that has the following:
</P>
<PRE>
[device]
wifi.scan-rand-mac-address=no
</PRE>
<P>
On a live system you can then _code(`rc-service networkmanager restart') to restart NetworkManager and have it load the new configuration.
</P>

70
wiki/unix/arch.m4 Normal file
View File

@ -0,0 +1,70 @@
_header(`Arch')
<P>
Arch is known for using the latest versions of programs, which has given it an undeserved reputation of instability.
</P>
_subheader(`Bootstrapping')
<P>
Use _man(`pacstrap(8)').
</P>
<P>
At a minimum you need the _code(`base') package.
Select a kernel and install the corresponding package; _code(`linux'), _code(`linux-lts'), or another Linux configuration or fork.
The Arch wiki says you need to install _code(`linux-firmware'), this isn't strictly necessary but it is recommended.
Install _code(`base-devel') if you plan on using the AUR or if you don't know what the AUR is yet.
</P>
<P>
It's also a good idea to install any utilities you'll need on the bootstrapped system.
Text editors, network managers or utilities, and other administration tools, for example.
Manual utilities such as _code(`man-db') and others would also be useful.
</P>
<H5>Ubiquitous packages missing</H5>
<P>From the annals of my notes, 2021-06-04:</P>
<PRE>
Had an issue with pacman missing some ubiquitous packages (esr's 'ascii', xorg-xev, etc).
This fixed it. I don't really know why - maybe some issues with my repos?
This was cleanly installed artix-openrc.
[5:46 PM] Bassman Leyla: So what I did is I went into /etc/pacman.d/mirrorlist-arch and uncommented a local mirror
[5:46 PM] Bassman Leyla: Then I appended a config block a package maintainer gave me onto /etc/pacman.conf
[5:46 PM] Bassman Leyla: I'll paste it in
[5:47 PM] Bassman Leyla:
'''
#
# ARCHLINUX
#
#[testing]
#Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
#[community-testing]
#Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch
'''
</PRE>
_subheader(`Artix')
_bibliography(`
_bentr(`<A HREF="https://artixlinux.org/">Artix Linux</A>')
_bentr(`<A HREF="https://en.wikipedia.org/wiki/Artix_Linux">Artix Linux</A> (Wikipedia)')
')
<P>
Artix is a Linux software distribution based on Arch that doesn't mandate SystemD as its initialization system.
</P>
_subsubheader(`Bootstrapping')
<P>
This process differs from Arch's bootstrapping process.
Artix uses _man(`basestrap(8)') rather than _man(`pacstrap(8)');
you need to select the initialization you want to use: _code(`66'), _code(`dinit'), _code(`openrc'), _code(`runit'), or _code(`s6-base'), as a package separate from _code(`base');
and Artix's official wiki says you need to install the appropriate _link(`#logind', `_code(`elogind')') package (_code(`elogind-[<I>initialization system</I>]') e.g. _code(`elogind-66')) but like _code(`linux-firmware') though it is helpful it isn't strictly necessary.
</P>

22
wiki/unix/debian.m4 Normal file
View File

@ -0,0 +1,22 @@
_header(`Debian')
_bibliography(`
_bentr(`_link(`Debian', `https://www.debian.org/')')
_bentr(`_link(`Debian', `https://en.wikipedia.org/wiki/Debian') (Wikipedia)')
')
<P>
Debian is a software distribution that can use _ref(`#linux') or the GNU HURD as its kernel.
In the past, FreeBSD's kernel was also an option.
Debian is known for its stability and longevity.
Debian uses SystemD as its initialization system, the GNU core utilities, and dpkg and apt for package management.
</P>
<P>
The vast majority of support and attention is on the Debian GNU+Linux configuration.
</P>
_subheader(`Ubuntu')
<UL>
<LI><A HREF="https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE/">How to get root on Ubuntu 20.04 by pretending nobody's /home</A></LI>
</UL>
<P>
Ubuntu is a derivative of Debian.
</P>

View File

@ -9,10 +9,16 @@ include(`posix.m4')
include(`acpi.m4')
include(`alpine.m4')
include(`arch.m4')
include(`C.m4')
include(`culture.m4')
include(`debian.m4')
include(`doas.m4')
include(`editing.m4')

View File

@ -1,5 +1,5 @@
_header(`Linux')
_bibliography(`
<UL>
_bentr(`_link(`How to Linux', `http://tldp.yolinux.com/HOWTO/subdir/HOWTO-INDEX.html')')
_bentr(`_link(`How to Use User Mode Linux', `https://christine.website/blog/howto-usermode-linux-2019-07-07')')
_bentr(`<A HREF="https://www.cs.cmu.edu/~awb/linux.history.html">LINUX's History</A>')
@ -7,8 +7,8 @@ _bentr(`_link(`The Linux Kernel documentation', `https://www.kernel.org/doc/html
_bentr(`_link(`LINUX is obsolete', `https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI')')
_bentr(`_link(`Linux From Scratch', `http://www.linuxfromscratch.org/')')
_bentr(`_link(`Move your Linux from BIOS to UEFI in place', `https://www.redhat.com/sysadmin/bios-uefi')')
_bentr(`<A HREF="https://www.collabora.com/news-and-blog/blog/2020/08/27/using-the-linux-kernel-case-insensitive-feature-in-ext4/">Using the Linux kernel's Case-insensitive feature in Ext4</A>')
')
<LI><A HREF="https://www.collabora.com/news-and-blog/blog/2020/08/27/using-the-linux-kernel-case-insensitive-feature-in-ext4/">Using the Linux kernel's Case-insensitive feature in Ext4</A></LI>
</UL>
_subheader(`ACPI')
_bibliography(`
@ -29,7 +29,7 @@ _subheader(`Audio')
<P>
Most audio servers recommend that they be run in userspace with user privileges, with PulseAudio going so far as to exiting when run as root without additional configuration.
The Alpine wiki currently recommends _man(`pipewire(1)'), with postmarketOS, which is based on Alpine, coming pre-configured with PipeWire.
PipeWire is relatively new and the typical audio server used is PulseAudio; Debian and many popular Debian-based distributions come pre-configured with PulseAudio.
PipeWire is relatively new and the typical audio server used is PulseAudio; _ref(`#debian') and many popular Debian-based distributions come pre-configured with PulseAudio.
</P>
_subsubheader(`ALSA')
_bibliography(`
@ -78,156 +78,10 @@ _subheader(`Distributions')
<P>
Linux is usually obtained as part of a software distribution put together to form a useable operating system.
</P>
_subsubheader(`Alpine')
<P>
Alpine Linux is a small Linux distribution based on musl libc.
Its main purpose is to serve as a server distribution, however many have found use for it as a desktop distribution.
</P>
_bibliography(`
_bentr(`<A HREF="https://pkgs.alpinelinux.org/contents">Alpine repositories content search</A>')
')
<H5>Bootstrapping</H5>
<P>
Alpine's bootstrapping procedure is quite manual; you should probably use _program(`setup-alpine').
However, it is possible and quite easy to perform the steps manually.
</P>
<UL>
<LI>Copy over the contents of _file(`/etc/apk/keys') to _file(`/mnt/etc/apk/keys')</LI>
<LI>
Add newline-delimited mirrors to _file(`/mnt/etc/apk/repositories'), such as these if you wish to use the _code(`edge') branch:
<PRE>
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing
</PRE>
_code(`edge') may be replaced with a stable branch, the latest being _code(`v3.17') as of writing.
</LI>
<LI>
Run _command(`apk --root /mnt add --initdb alpine-base').
This is an ordinary _man(`apk-add(8)') call; you may wish to install necessities such as a kernel, firmware, and a bootloader at the same time.
</LI>
</UL>
<P>
Alpine does not have a _man(`chroot(1)') helper; you must manually do that with a one-liner such as
_code(`for i in dev proc sys; do mount -o bind "/$i" "/mnt/$i"; done; cp /etc/resolv.conf /mnt/etc/resolv.conf')
which you can chroot into.
</P>
<P>
After chrooting in, you must configure basics such as users, passwords, _man(`fstab(5)'), and the bootloader yourself.
</P>
<H5>Always install manual pages</H5>
<P>
Alpine doesn't include man pages in program packages to save on space, instead keeping them in _code(`[<I>package</I>]-doc') sibling packages.
To always install doc packages with program packages, _code(`apk add docs').
</P>
_subsubheader(`Arch')
<P>
Arch is known for using the latest versions of programs, which has given it an undeserved reputation of instability.
</P>
<H5>Bootstrapping</H5>
<P>
Use _man(`pacstrap(8)').
</P>
<P>
At a minimum you need the _code(`base') package.
Select a kernel and install the corresponding package; _code(`linux'), _code(`linux-lts'), or another Linux configuration or fork.
The Arch wiki says you need to install _code(`linux-firmware'), this isn't strictly necessary but it is recommended.
Install _code(`base-devel') if you plan on using the AUR or if you don't know what the AUR is yet.
</P>
<P>
It's also a good idea to install any utilities you'll need on the bootstrapped system.
Text editors, network managers or utilities, and other administration tools, for example.
Manual utilities such as _code(`man-db') and others would also be useful.
</P>
<H5>Ubiquitous packages missing</H5>
<P>From the annals of my notes, 2021-06-04:</P>
<PRE>
Had an issue with pacman missing some ubiquitous packages (esr's 'ascii', xorg-xev, etc).
This fixed it. I don't really know why - maybe some issues with my repos?
This was cleanly installed artix-openrc.
[5:46 PM] Bassman Leyla: So what I did is I went into /etc/pacman.d/mirrorlist-arch and uncommented a local mirror
[5:46 PM] Bassman Leyla: Then I appended a config block a package maintainer gave me onto /etc/pacman.conf
[5:46 PM] Bassman Leyla: I'll paste it in
[5:47 PM] Bassman Leyla:
'''
#
# ARCHLINUX
#
#[testing]
#Include = /etc/pacman.d/mirrorlist-arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch
#[community-testing]
#Include = /etc/pacman.d/mirrorlist-arch
[community]
Include = /etc/pacman.d/mirrorlist-arch
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist-arch
#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch
'''
</PRE>
_subsubheader(`Artix')
_bibliography(`
_bentr(`<A HREF="https://artixlinux.org/">Artix Linux</A>')
_bentr(`<A HREF="https://en.wikipedia.org/wiki/Artix_Linux">Artix Linux</A> (Wikipedia)')
')
<P>
Artix is a Linux software distribution based on Arch that doesn't mandate SystemD as its initialization system.
</P>
<H5>Bootstrapping</H5>
<P>
This process differs from Arch's bootstrapping process.
Artix uses _man(`basestrap(8)') rather than _man(`pacstrap(8)');
you need to select the initialization you want to use: _code(`66'), _code(`dinit'), _code(`openrc'), _code(`runit'), or _code(`s6-base'), as a package separate from _code(`base');
and Artix's official wiki says you need to install the appropriate _link(`#logind', `_code(`elogind')') package (_code(`elogind-[<I>initialization system</I>]') e.g. _code(`elogind-66')) but like _code(`linux-firmware') though it is helpful it isn't strictly necessary.
</P>
_subsubheader(`Debian')
_bibliography(`
_bentr(`<A HREF="https://www.debian.org/">Debian</A>')
_bentr(`<A HREF="https://en.wikipedia.org/wiki/Debian">Debian</A> (Wikipedia)')
')
<P>
Debian is known for its stability and longevity.
Debian uses SystemD as its initialization system, the GNU core utilities, and dpkg and apt for package management.
</P>
<P>
While it's possible to use non-Linux kernels within Debian, it's uncommon and the only non-Linux option currently maintained is the GNU HURD microkernel.
</P>
_subsubheader(`postmarketOS')
<P>
postmarketOS is an Alpine-based Linux software distribution that makes configuring and using Linux easy on mobile devices.
</P>
<H5>Random MAC address generation on Wifi</H5>
<P>
By default, postmarketOS will generate a random software MAC address when connecting to a new WLAN network.
You can disable this by adding a NetworkManager rule.
In _code(`/etc/NetworkManager/conf.d/') you can make a file with any name that has the following:
</P>
<PRE>
[device]
wifi.scan-rand-mac-address=no
</PRE>
<P>
On a live system you can then _code(`rc-service networkmanager restart') to restart NetworkManager and have it load the new configuration.
</P>
_subsubheader(`Ubuntu')
_bibliography(`
_bentr(`<A HREF="https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE/">How to get root on Ubuntu 20.04 by pretending nobody's /home</A>')
')
<P>
Ubuntu is a derivative of Debian.
</P>
_subsubheader(_ref(`#alpine'))
_subsubheader(_ref(`#arch'))
_subsubheader(_ref(`#debian'))
_subheader(`logind')
_bibliography(`