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(`alpine.m4')
|
||||
|
||||
include(`arch.m4')
|
||||
|
||||
include(`C.m4')
|
||||
|
||||
include(`culture.m4')
|
||||
|
||||
include(`debian.m4')
|
||||
|
||||
include(`doas.m4')
|
||||
|
||||
include(`editing.m4')
|
||||
|
@ -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(`
|
||||
|
Loading…
Reference in New Issue
Block a user