split linux distros to their own sections
This commit is contained in:
parent
813e5ab1c4
commit
ca9cfe7045
60
wiki/unix/alpine.m4
Normal file
60
wiki/unix/alpine.m4
Normal 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
70
wiki/unix/arch.m4
Normal 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
22
wiki/unix/debian.m4
Normal 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>
|
@ -9,10 +9,16 @@ include(`posix.m4')
|
|||||||
|
|
||||||
include(`acpi.m4')
|
include(`acpi.m4')
|
||||||
|
|
||||||
|
include(`alpine.m4')
|
||||||
|
|
||||||
|
include(`arch.m4')
|
||||||
|
|
||||||
include(`C.m4')
|
include(`C.m4')
|
||||||
|
|
||||||
include(`culture.m4')
|
include(`culture.m4')
|
||||||
|
|
||||||
|
include(`debian.m4')
|
||||||
|
|
||||||
include(`doas.m4')
|
include(`doas.m4')
|
||||||
|
|
||||||
include(`editing.m4')
|
include(`editing.m4')
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
_header(`Linux')
|
_header(`Linux')
|
||||||
_bibliography(`
|
<UL>
|
||||||
_bentr(`_link(`How to Linux', `http://tldp.yolinux.com/HOWTO/subdir/HOWTO-INDEX.html')')
|
_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(`_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>')
|
_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 is obsolete', `https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI')')
|
||||||
_bentr(`_link(`Linux From Scratch', `http://www.linuxfromscratch.org/')')
|
_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(`_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')
|
_subheader(`ACPI')
|
||||||
_bibliography(`
|
_bibliography(`
|
||||||
@ -29,7 +29,7 @@ _subheader(`Audio')
|
|||||||
<P>
|
<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.
|
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.
|
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>
|
</P>
|
||||||
_subsubheader(`ALSA')
|
_subsubheader(`ALSA')
|
||||||
_bibliography(`
|
_bibliography(`
|
||||||
@ -78,156 +78,10 @@ _subheader(`Distributions')
|
|||||||
<P>
|
<P>
|
||||||
Linux is usually obtained as part of a software distribution put together to form a useable operating system.
|
Linux is usually obtained as part of a software distribution put together to form a useable operating system.
|
||||||
</P>
|
</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
|
_subsubheader(_ref(`#alpine'))
|
||||||
[5:46 PM] Bassman Leyla: Then I appended a config block a package maintainer gave me onto /etc/pacman.conf
|
_subsubheader(_ref(`#arch'))
|
||||||
[5:46 PM] Bassman Leyla: I'll paste it in
|
_subsubheader(_ref(`#debian'))
|
||||||
[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>
|
|
||||||
|
|
||||||
_subheader(`logind')
|
_subheader(`logind')
|
||||||
_bibliography(`
|
_bibliography(`
|
||||||
|
Loading…
Reference in New Issue
Block a user