summaryrefslogtreecommitdiff
path: root/blog/2022-04-17.md
diff options
context:
space:
mode:
authoreug-vs <eugene@eug-vs.xyz>2022-04-21 15:04:56 +0300
committereug-vs <eugene@eug-vs.xyz>2022-04-21 15:04:56 +0300
commit24639575c32e48a3db46e06be6a3a25cd80e8991 (patch)
treec8d86d84ce9581a65471d0d4aa6720b4506fe6ae /blog/2022-04-17.md
parent0b7bc99af62aa53148b7fcede648e5dfb6e2ca22 (diff)
downloadeug-vs-xyz-24639575c32e48a3db46e06be6a3a25cd80e8991.tar.gz
refactor: change prject structure
Diffstat (limited to 'blog/2022-04-17.md')
-rw-r--r--blog/2022-04-17.md51
1 files changed, 0 insertions, 51 deletions
diff --git a/blog/2022-04-17.md b/blog/2022-04-17.md
deleted file mode 100644
index d6ca637..0000000
--- a/blog/2022-04-17.md
+++ /dev/null
@@ -1,51 +0,0 @@
-# Running Gentoo :gentoo: on multiple workstations
-Last week I've migrated my daily-driver laptop :computer: from [Artix Linux](https://artixlinux.org/) to [Gentoo](https://www.gentoo.org/). I also have Gentoo-powered PC for a ~half a year already, so some experience has accumulated.
-I always wanted to do that, but there was a fear of unknown:
- - Is my CPU performance sufficient for compiling packages?
- - What if I don't have time to compile a package (e.g at work)?
- - How am I gonna manage the USE flags?
-
-Of course, none of that shit can stop me!
-
-# My CPU is weak :cry:
-My laptop has a pretty weak CPU (**Intel i3**) compared to flagship models. My PC has **Intel i5**, so obviously compiling packages on laptop will be even slower. That is definitely gonna be a problem...
-
-But wait, why don't we use **both CPU's** for compilation? :thinking:
-
-
-## Introducing `distcc`
-From [Gentoo wiki](https://wiki.gentoo.org/wiki/Distcc):
-> Distcc is a program designed to distribute compiling tasks across a network to participating hosts. It comprises a server, distccd, and a client program, distcc. Distcc can work transparently with ccache, Portage, and Automake with a small amount of setup.
-
-Installation and usage is of course covered in the wiki along with instructions on bootstrapping new machine. Thanks to `distcc` installing Gentoo on my laptop was even faster than on more performant PC.
-
-Basically my PC runs a `distccd` server in my **LAN** and my laptop connects to it, sending compilation requests. Now every time I want to compile some heavy packages I just wait to come home and do it at almost twice the speed. There are more optional benefits:
- - I can bring my RaspberryPI :raspberry-pi: to the compilation network (not without some cross-architecture magic)
- - I can pull up some more old rusty metal, connect it to my **LAN** and have my packages compiled *even faster* :fire:
- - I can setup [ccache](https://wiki.gentoo.org/wiki/Ccache) and share compilation cache within my network, making heavy package updates finish in seconds
-
-
-# What if I'm outside and don't have time for compilation? :scream:
-Actually turns out it's a very hypothetical situation. Most of the time you already have your toolkit installed anyway. It's only annoying if you want to try something new - for that I recommend remote or virtual machines (yes, `docker` still exists).
-
-In any case, if such an urgent situation occurs, **you can just get a binary!** There are also ways to setup your own [binary package server](https://wiki.gentoo.org/wiki/Binary_package_guide).
-
-# Managing portage configuration across workstations :hammer_and_wrench:
-[Portage](https://wiki.gentoo.org/wiki/Portage) is **the best** package manager I ever used. The obvious benefit is an ability to split your packages into [sets](https://wiki.gentoo.org/wiki/Package_sets). I can define as many sets as I want, for example here's my `/etc/portage/sets/base`:
-```bash
-app-admin/doas
-app-admin/stow
-app-editors/neovim
-app-shells/dash
-app-shells/zsh
-dev-vcs/git
-app-misc/vifm
-net-misc/ntp
-```
-
-I can install everything from this set with `emerge --ask --verbose @base`. Or if I want to install everything development-related, I can just install `@development` set. As easy as it gets!
-
-This way I can categorize my packages by purpose, compilation time, shared libraries, *etc*. Each package can belong to many sets. And most importantly, package set is **just a plaintext file**! You can manually edit it, you can store it under `git`, and you can share it across your workstations.
-
-Since portage is fully configurable via plaintext files, the same works for USE flags, keywords, accepted keywords and licenses.
-