commit e18bb7a7b983fd4dddf995a80a5c0286064405c2 Author: Lucien Cartier-Tilet Date: Sat Oct 23 21:21:03 2021 +0200 First addition of links diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d211c47 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +book +/build/ diff --git a/book.toml b/book.toml new file mode 100644 index 0000000..098d7be --- /dev/null +++ b/book.toml @@ -0,0 +1,17 @@ +[book] +authors = ["Lucien Cartier-Tilet"] +language = "en" +multilingual = false +src = "src" +title = "Phundrak’s Interesting Links" + +[output.html] +default-theme = "dark" +curly-quotes = true +git-repository-url = "https://github.com/Phundrak/interesting-links" +edit-url-template = "https://github.com/Phundrak/interesting-links/edit/master/{path}" +site-url = "https://phundrak.github.io/interesting-links" + +[output.html.fold] +enable = true +level = 1 diff --git a/src/Linux/distros/AlpineLinux.md b/src/Linux/distros/AlpineLinux.md new file mode 100644 index 0000000..7c2d905 --- /dev/null +++ b/src/Linux/distros/AlpineLinux.md @@ -0,0 +1,18 @@ +# Alpine Linux +I heard you like extra light distributions, right? Alpine is **the** +distribution you will love then! Although I used it once on a server, +I use it very often when I have to create Docker images and containers +due to how light it is. When I installed it on my server, its fresh +install only took something like 100MB on my hard drive, I’m not even +kidding! Its package manager `apk` is relatively easy to use too. Be +aware though Alpine Linux does not come with Systemd or `glibc` but +with its own init system, `musl` and `busybox`, so it’s not even a +GNU/Linux distribution like all the others above. + +I don’t know of any madman running it as their daily driver, but it’s +definitively possible although I wouldn’t recommend it for anyone +that’s not very used to Linux. I don’t find its documentation to be +great either, but it’s still enjoyable. + +* [Homepage](https://www.alpinelinux.org/) +* [Download](https://www.alpinelinux.org/downloads/) diff --git a/src/Linux/distros/Arch/Arch.md b/src/Linux/distros/Arch/Arch.md new file mode 100644 index 0000000..13b0632 --- /dev/null +++ b/src/Linux/distros/Arch/Arch.md @@ -0,0 +1 @@ +# ArchLinux diff --git a/src/Linux/distros/Arch/ArchLinux.md b/src/Linux/distros/Arch/ArchLinux.md new file mode 100644 index 0000000..36d3328 --- /dev/null +++ b/src/Linux/distros/Arch/ArchLinux.md @@ -0,0 +1,45 @@ +# Arch Linux +Infamous for being hard to install, not that hard if you know how to +read instructions from the [ArchWiki](https://wiki.archlinux.org/) (it +even has a guided installer now, although not very complete compared +to others). Said ArchWiki will become your Bible if you want to become +a Linux poweruser, regardless of your distribution although not +everything might be applicable if it is not Arch-derived. However, I +will never recommend it to any Linux newcomer, you need to somewhat +know what you are doing if you want to properly use it (or if you want +to learn with it, be ready to accidentally bork your system). + +Its main strengths, on top of the ArchWiki, are the +[AUR](https://aur.archlinux.org/) (an additional user-powered package +repository on top of the official ones), powered by the ease of +creation of Arch packages with [PKGBUILD +files](https://wiki.archlinux.org/title/PKGBUILD) (See? The +ArchWiki!), and its initial minimalism. It can become whatever you +want, really. But don’t expect a GUI to be there on a fresh install, +you’ll have to add it yourself. + +Also, unlike some popular belief, ArchLinux is quite stable as long as +you follow some proper etiquette when maintaining your system. I had +way more Debian-based distros getting borked during an upgrade than +with ArchLinux (especially with Ubuntu). In fact, even most of my +servers run on Arch and only one runs on Debian. And `pacman` is +better and faster than `apt`, fight me. + +ArchLinux uses [`pacman`](https://wiki.archlinux.org/title/Pacman) as +its package manager. + +* [Homepage](https://archlinux.org/) +* [Download](https://archlinux.org/download/) + +For advanced users, I’d also recommend taking a look at [this +project](https://git.harting.dev/anonfunc/ALHP.GO). The `x86-64-v3` +repositories aim at bringing to Arch packages compiled with CPU +instructions found in most modern CPU, unlike the ones found in the +regular repositories which aim to be as compatible as possible with +`x86-64` CPUs. Packages from these new repositories can perform a bit +better, and I have yet to encounter any significant bug. Be aware any +package that is not compiled (like most Python scripts for instance) +cannot be found in these as they cannot be compiled (like all packages +flaged with the `any` architecture); therefore they are not included +but can still be found in the regular `core`, `community`, and `extra` +repositories. diff --git a/src/Linux/distros/Arch/Archcraft.md b/src/Linux/distros/Arch/Archcraft.md new file mode 100644 index 0000000..43e2f9a --- /dev/null +++ b/src/Linux/distros/Arch/Archcraft.md @@ -0,0 +1,8 @@ +# Archcraft +This one though is an actual distribution, although its less far from +ArchLinux than for instance Pop!\_OS is from Ubuntu. Think of it more +of a preconfigured, easy-to-use, easy-to-install ArchLinux but still +an ArchLinux. And a beautiful one, props to the dev! + +* [Homepage](https://archcraft.io/) +* [Download](https://archcraft.io/download.html) diff --git a/src/Linux/distros/Arch/Manjaro.md b/src/Linux/distros/Arch/Manjaro.md new file mode 100644 index 0000000..62b7b5e --- /dev/null +++ b/src/Linux/distros/Arch/Manjaro.md @@ -0,0 +1,18 @@ +# Manjaro +I will only include this one as a warning: + +**Do *NOT* use it!** + +Although it might look nice and easy to use at first, its various +scripts for maintaining the system are bug-ridden, filled with +textbook examples of what **not** to do with `pacman` and with Arch in +general (partial upgrades, forced downgrades of system-critical +packages, fake improvements of stability, etc…)[^1]. Also, the +association taking care of Manjaro is shady[^2]. Oh, and they +don’t know how to properly maintain their forum[^3]. + +[^1]: [Technical controversies](https://rentry.co/manjaro-controversies) + +[^2]: Leadership controversy: a [Reddit thread](https://www.reddit.com/r/linux/comments/hxpj87/change_in_manjaro_team_composition_announcements/) and a [HackerNews thread](https://news.ycombinator.com/item?id=24330655) + +[^3]: See [this](https://www.reddit.com/r/ManjaroLinux/comments/iax0tx/whats_going_on_with_manjaro_forums/) and [this](https://linuxreviews.org/Manjaro_Linux_Lost_All_Of_Their_Support_Forum_Images) Reddit threads diff --git a/src/Linux/distros/Arch/archfi.md b/src/Linux/distros/Arch/archfi.md new file mode 100644 index 0000000..97e8909 --- /dev/null +++ b/src/Linux/distros/Arch/archfi.md @@ -0,0 +1,11 @@ +# archfi +Not technically a distribution per se but rather a better guided +installer for Arch than its default one I think. I use it when I want +to create a new, fresh ArchLinux install and it’s pretty damn +effective! You can even run `archdi` from it to preinstall some +packages you might find useful, such as a Window Manager (a *WM* such +as Openbox) or a Desktop Environment (a *DE*, such as GNOME, KDE, or +Cinnamon). + +* [Homepage](https://github.com/MatMoul/archfi) +* [How to Use](https://github.com/MatMoul/archfi#how-to-use) diff --git a/src/Linux/distros/Arch/index.md b/src/Linux/distros/Arch/index.md new file mode 100644 index 0000000..5fe21be --- /dev/null +++ b/src/Linux/distros/Arch/index.md @@ -0,0 +1 @@ +# ArchLinux Family diff --git a/src/Linux/distros/Debian/Debian.md b/src/Linux/distros/Debian/Debian.md new file mode 100644 index 0000000..2bac012 --- /dev/null +++ b/src/Linux/distros/Debian/Debian.md @@ -0,0 +1,13 @@ +# Debian +A reliable distribution, known for being very stable but sometimes +with kind of outdated packages. It is often use on servers, and I +actually run one on Debian! + +Uses the `apt` package manager. +* [Homepage](https://www.debian.org/ "Debian Homepage") +* Downloads: + * [Free](https://www.debian.org/download "Only contains free-licensed packages") + * [Nonfree](https://cdimage.debian.org/images/unofficial/non-free/images-including-firmware/ + "Contains proprietary packages and drivers"), might be + needed for computers which hardware require nonfree drivers + such as maybe a WiFi card or a GPU. diff --git a/src/Linux/distros/Debian/Mint.md b/src/Linux/distros/Debian/Mint.md new file mode 100644 index 0000000..5ff779e --- /dev/null +++ b/src/Linux/distros/Debian/Mint.md @@ -0,0 +1,9 @@ +# Linux Mint +A lightweight Ubuntu fork, might be friendlier than Ubuntu itself for +Linux newcomers from Windows with its Cinnamon and MATE versions. + +Uses mainly `apt` as its package manager, I don’t know if it +followed Ubuntu in its heavy usage of `snap`. + +* [Homepage](https://linuxmint.com/) +* [Download](https://linuxmint.com/download.php) diff --git a/src/Linux/distros/Debian/Pop_OS.md b/src/Linux/distros/Debian/Pop_OS.md new file mode 100644 index 0000000..278a381 --- /dev/null +++ b/src/Linux/distros/Debian/Pop_OS.md @@ -0,0 +1,18 @@ +# Pop!\_OS +My personal favorite in the Debian family, this one is developed by +System76 and is based on Ubuntu. However, they did not follow in +Ubuntu’s footstep in terms of its snap usage. Instead, most packages +are available through `apt` and some through `flatpak` which is much +nicer on your computer than `snap`. It’s also a great choice for +computers that run on NVIDIA since they have a Pop!\_OS version +specially made for them, saving you the hassle of figuring out how to +make it work (come on NVIDIA, AMD is already playing nice with Linux, +why not you too?). You shouldn’t have any issue playing games with +this distro. + +I think this is the distro I recommend the most to Linux newcomers. + +As mentioned, uses `apt` and `flatpak`. + +* [Homepage](https://pop.system76.com/) (download button pretty + obvious) diff --git a/src/Linux/distros/Debian/Ubuntu.md b/src/Linux/distros/Debian/Ubuntu.md new file mode 100644 index 0000000..f658b50 --- /dev/null +++ b/src/Linux/distros/Debian/Ubuntu.md @@ -0,0 +1,10 @@ +# Ubuntu +Most likely the best known distribution, used to be very beginners +friendly but I believe its usability went down in the past few +years. I’m also still not over Canonical’s hard push for using +snaps. Often used in servers. + +Uses mainly `apt` as its package manager but with a heavy usage of +`snap`. +* [Homepage](https://ubuntu.com/) +* [Download](https://ubuntu.com/download/desktop) diff --git a/src/Linux/distros/Debian/index.md b/src/Linux/distros/Debian/index.md new file mode 100644 index 0000000..104edfc --- /dev/null +++ b/src/Linux/distros/Debian/index.md @@ -0,0 +1 @@ +# Debian Family diff --git a/src/Linux/distros/Fedora/CentOS.md b/src/Linux/distros/Fedora/CentOS.md new file mode 100644 index 0000000..e3c94dd --- /dev/null +++ b/src/Linux/distros/Fedora/CentOS.md @@ -0,0 +1,3 @@ +# CentOS +Let’s not talk about it… My heart hasn’t healed yet… Good night, sweet +prince… diff --git a/src/Linux/distros/Fedora/Fedora.md b/src/Linux/distros/Fedora/Fedora.md new file mode 100644 index 0000000..cdf154e --- /dev/null +++ b/src/Linux/distros/Fedora/Fedora.md @@ -0,0 +1,16 @@ +# Fedora +This distribution is pretty well known in the Linux community, and it +has a pretty large package repository on top of being known for being +quite stable. Although he stated he doesn’t really care about the +distro he’s running, Linus Torvalds, the creator of Linux and Git, +stated he uses Fedora as his daily driver, and to be honest I probably +would too if it weren’t for Arch’s AUR and minimalism. (And let’s not +compare Linus to myself, he is a freaking genius who created the most +successful kernel ever, I’m just a Linux and Emacs enthusiast, I’m +just sharing my opinions here). + +I also think it’s pretty well fitted for Linux newcomers, although +maybe not as much as Pop!\_OS. + +* [Homepage](https://getfedora.org/) +* [Download](https://getfedora.org/en/workstation/download/) diff --git a/src/Linux/distros/Fedora/RedHat.md b/src/Linux/distros/Fedora/RedHat.md new file mode 100644 index 0000000..34175aa --- /dev/null +++ b/src/Linux/distros/Fedora/RedHat.md @@ -0,0 +1,11 @@ +# RedHat +The best known enterprise Linux distro, it is available for free for +up to sixteen workstations or servers through their [Red Hat Developer +program](https://developers.redhat.com/), which is nice! But as far as +I know, you won’t have access to the whole suite of software you can +theoretically get from RedHat unless you get a paid license. + +As I have no experience with it, I cannot recommend nor not recommend +using it. + +* [Homepage](https://www.redhat.com/) diff --git a/src/Linux/distros/Fedora/index.md b/src/Linux/distros/Fedora/index.md new file mode 100644 index 0000000..c3ded73 --- /dev/null +++ b/src/Linux/distros/Fedora/index.md @@ -0,0 +1 @@ +# Fedora Family diff --git a/src/Linux/distros/Gentoo.md b/src/Linux/distros/Gentoo.md new file mode 100644 index 0000000..d8d2bc0 --- /dev/null +++ b/src/Linux/distros/Gentoo.md @@ -0,0 +1,27 @@ +# Gentoo +Let’s take one step further into the “make your own distro” world and +the memes. Although Gentoo is not *that* hard to install, Gentoo does +not come with **any** precompiled package. Instead, you will have to +compile everything yourself, and if you don’t know how to +[RTFM](https://xkcd.com/293/), this distribution will make sure that +you will. While yes, it *is* CPU intensive to maintain such a +distribution, every compilable package will be able to fully use the +entire set of available assembly calls your CPU has and you *might* +get some performance boost from it. Keyword: *might*. In a lot of +cases, you might not actually notice it, or if you do it might just be +your imagination. But I won’t deny it’s a great distro for tinkerers, +and you can easily make your own packages. + +Documentation for this distribution is pretty great and it can give +you some nice insights on other distributions too, and you can choose +whether to use Gentoo’s own init system or Systemd. + +As you might have guessed it, this is clearly not a distribution made +for beginners, and avoid installing it on machines that don’t have +good performance unless you don’t value your time. Below is the +typical evolution of a Gentoo user. + +![https://www.explainxkcd.com/wiki/index.php/456:_Cautionary](/img/xkcd_456_cautionary.png "This really is a true story, and she doesn't know I put it in my comic because her wifi hasn't worked for weeks.") + +* [Homepage](https://www.gentoo.org/) +* [Download](https://www.gentoo.org/downloads/) diff --git a/src/Linux/distros/GuixSD.md b/src/Linux/distros/GuixSD.md new file mode 100644 index 0000000..cb8651b --- /dev/null +++ b/src/Linux/distros/GuixSD.md @@ -0,0 +1,32 @@ +# GuixSD +Similar to NixOS is GuixSD, a libre Linux distribution based on the +`guix` package manager. It’s basically the same distribution as NixOS +except that the configuration files for the system are written not in +a special DSL but with Scheme (a Lisp dialect). So if you are already +familiar with Lisp or even with Scheme itself, you should be able to +learn how to use and maintain GuixSD pretty fast. + +GuixSD has a pretty extensive documentation, although I don’t find it +to always be very clear. + +Just like above, be aware not to mistake Guix for GuixSD; Guix is a +package manager that can be installed on a lot of UNIX-like systems +(mainly Linux ones, I don’t know if it’s possible to install it +elsewhere aside from GNU/Hurd) while GuixSD is the whole operating +system based on this package manager. + +As a Lisp lover, I would definitively switch to this operating system +if it weren’t for its hostility towards nonfree and proprietary +software and packages –my WiFi won’t work unless I install the nonfree +Linux kernel from unofficial repositories, kernel which is recompiled +each time it is upgraded– and a lot of software and packages need +custom packaging so you can install them. I love to tinker, but as +much as spending literally hours on getting everything I need +correctly packaged for GuixSD. Some people are fine with that though, +such as [SystemCrafters](https://systemcrafters.net/) who creates +great content for Emacs and Guix users. + +* [Homepage](https://guix.gnu.org/) +* Downloads: + * [Stable](https://guix.gnu.org/en/download/) + * [Latest](https://guix.gnu.org/en/download/latest/) diff --git a/src/Linux/distros/NixOS.md b/src/Linux/distros/NixOS.md new file mode 100644 index 0000000..bc9e5bb --- /dev/null +++ b/src/Linux/distros/NixOS.md @@ -0,0 +1,34 @@ +# NixOS +I know some people, myself included, love to tinker with files that +dictate how their system is configured. What if I told you it is +possible to configure your ***whole system***, services, users, and +packages included among other things, through a single file? (Or +several through file inclusion) + +Well, NixOS does exactly that! And not only that, when you upgrade +your system, a snapshot of your current system is taken so you can go +back to it if your upgrade goes wrong for some reason. Awesome, isn’t +it? + +Now, why don’t I use this distro? Well, again, I miss the AUR and I +don’t find its syntax (which is a DSL made for this use-case +precisely) particularly appealing, but I know a lot of people don’t +mind this and actually like it. Also, I appreciate the separation +between the system-level configuration and the user-level +configuration, in case a user wants an additional package not included +by the system for instance, or to set their `$PATH` to the desired +value without tampering with the system’s `$PATH`. You can even create +custom environment you can enter and exit if you need for instance a +precise version of Python for a certain project which is not the +default one installed on your system. + +Once again, this isn’t a distribution that targets Linux newcomers +since you need to get your hands dirty to maintain your system. + +Be aware there is a difference between Nix, the package manager, and +NixOS. Nix can be installed on a lot of systems, pretty much every +Linux ones but also on macOS(!), while NixOS is the Linux distribution +based on Nix itself. + +* [Homepage](https://nixos.org/) +* [Download](https://nixos.org/download) diff --git a/src/Linux/distros/VoidLinux.md b/src/Linux/distros/VoidLinux.md new file mode 100644 index 0000000..4945acf --- /dev/null +++ b/src/Linux/distros/VoidLinux.md @@ -0,0 +1,22 @@ +# Void Linux +Remove `systemd` from Arch and make it into a distro that actually +works (looking at you Artix!) and you get Void Linux! It’s package +manager might not be as pleasant as `pacman` (hard to make one that +is), but the overall experience is pretty similar and people who like +to tinker will love this distribution! It used to be my daily driver +for some time before I went back to Arch because I missed the AUR. But +honestly, it wasn’t a bad experience at all and I would totally +recommend it to someone who has the level to use ArchLinux. + +One negative point is its documentation isn’t great due to a past +incident: at some point the project lost its domain name and had to +restart everything, making it a bit confusing, although that’s my +experience a couple of months after it happened. It might be better +now. + +Oh, and there’s a `musl` version available (that is, no `glibc` but a +lighter one with less bugs, but alas with slightly less compatibility +with other things…). + +* [Homepage](https://voidlinux.org/) +* [Download](https://voidlinux.org/download/) diff --git a/src/Linux/distros/index.md b/src/Linux/distros/index.md new file mode 100644 index 0000000..04ccfff --- /dev/null +++ b/src/Linux/distros/index.md @@ -0,0 +1 @@ +# Famous or Interesting Distributions diff --git a/src/Linux/learn.md b/src/Linux/learn.md new file mode 100644 index 0000000..1202257 --- /dev/null +++ b/src/Linux/learn.md @@ -0,0 +1,36 @@ +# Learn Linux +## Learn Bash +The first step towards becoming a Linux poweruser is to learn to get +around with the command line. While you might not use Bash itself (you +might have Zsh preinstalled instead), most of the things you will have +to learn are pretty standard across most shells (those that follow the +POSIX standard). Fun fact, if you know your way around a POSIX shell, +being in a macOS or a UNIX shell won’t feel that foreign since the +POSIX standard tries to be as compatible as possible with the UNIX +standard (and yes, macOS *is* a UNIX-certified OS). + +Finding tutorials on Bash is pretty easy, however there are some +tutorials I’d recommend: +* [Learn Shell](https://www.learnshell.org/) (learn to use the command + line, that’s pretty important) +* [Bash Guide for + Beginners](https://tldp.org/LDP/Bash-Beginners-Guide/Bash-Beginners-Guide.pdf) + (PDF file) +* [Learn X in Y minutes Where X=bash](https://learnxinyminutes.com/docs/bash/) +* [Bash Scripting Tutorial for Beginners](https://linuxconfig.org/bash-scripting-tutorial-for-beginners) +* [Learn Bash Scripting](https://www.codecademy.com/learn/bash-scripting) + +## Learn Linux, Prepare to be a System Administrator +Yes, that’s a big step, but that’s the path to become a poweruser. +While you might not want to become a sysadmin professionally, I don’t +think it hurts to learn even more about Linux. +* [The System Administrator’s Guide to Bash Scripting](https://learn.acloud.guru/course/admin-guide-to-bash-scripting/overview) +* [Linux Foundation Certified System Administrator (LFCS)](https://learn.acloud.guru/course/f9945b67-499d-4e79-80bd-580074fbecdd/overview) + +And pretty much any course on this website. They have five ranks of +difficulty in their courses: +* Novice +* Apprentice +* Practitioner +* Professional +* Guru (kinda hidden) diff --git a/src/SUMMARY.md b/src/SUMMARY.md new file mode 100644 index 0000000..d12ebdc --- /dev/null +++ b/src/SUMMARY.md @@ -0,0 +1,24 @@ +# Summary +[Presentation](./presentation.md) +# Linux +- [Learn Linux](./Linux/learn.md) +- [Famous or Interesting Distros](./Linux/distros/index.md) + - [Debian Family](./Linux/distros/Debian/index.md) + - [Debian](./Linux/distros/Debian/Debian.md) + - [Ubuntu](./Linux/distros/Debian/Ubuntu.md) + - [Pop!\_OS](./Linux/distros/Debian/Pop_OS.md) + - [Mint](./Linux/distros/Debian/Mint.md) + - [ArchLinux Family](./Linux/distros/Arch/index.md) + - [ArchLinux](./Linux/distros/Arch/ArchLinux.md) + - [archfi](./Linux/distros/Arch/archfi.md) + - [Archcraft](./Linux/distros/Arch/Archcraft.md) + - [Manjaro](./Linux/distros/Arch/Manjaro.md) + - [Fedora Family](./Linux/distros/Fedora/index.md) + - [Fedora](./Linux/distros/Fedora/Fedora.md) + - [RedHat](./Linux/distros/Fedora/RedHat.md) + - [CentOS](./Linux/distros/Fedora/CentOS.md) + - [Void Linux](./Linux/distros/VoidLinux.md) + - [Gentoo](./Linux/distros/Gentoo.md) + - [Alpine Linux](./Linux/distros/AlpineLinux.md) + - [NixOS](./Linux/distros/NixOS.md) + - [GuixSD](./Linux/distros/GuixSD.md) diff --git a/src/img/xkcd_456_cautionary.png b/src/img/xkcd_456_cautionary.png new file mode 100644 index 0000000..ba83240 Binary files /dev/null and b/src/img/xkcd_456_cautionary.png differ diff --git a/src/presentation.md b/src/presentation.md new file mode 100644 index 0000000..2c4c288 --- /dev/null +++ b/src/presentation.md @@ -0,0 +1,12 @@ +# P’undrak’s Interesting Links + +Welcome to my collection of interesting links I find here and there! +This website is inspired by Awesome pages such as this one. Thing is, +Awesome pages are generally written about a specific topic like this +one – that is not the case here, although there is the general topic +of Computer Science, and more often programming, that binds the links +together. + +Although this is primarily for links I find myself, suggestions are +more than welcome if you feel like one ore more should be added, feel +free to open a PR!