🧵 1/9
# Challenge in August: setup developer environment on Debian
How hard can one make this challenge!?
The only prep is installing #Debian 12 on an USB stick and hoping for the best.
🧵 2/9
## Getting the laptop
I received an old #Lenovo laptop built in year 2015 with #Windows11.
The first challenge is to get the laptop in a stable state that it does not constantly crash. The issue is that the battery light is flashing orange.
The obvious solution is to let the laptop charge. Though after letting it do exactly that over a couple of hours without any resolution a deeper dive is needed.
The next check is to see if the charging cable could be the issue. Sadly do not have a complete duplicate cable and am only able to replace the cable to the surge block. Due to the fact that the model is quite old it does not use USB-C connector as the charging option.
No progress with the cable option. Next I try running the laptop battery free. This is where I realized that newer models do not always have the option to remove the battery.
Removing the battery created the most stable option to test and/or clean up the current system before over writing it with Debian.
This is where it is brought to my attention that the laptop does not have the specs to run Windows 11. Thus, any #Linux will do just fine.
🧵 4/9
## Why is it not so easy as plug'n'play?
The trickiest part of installing any other system onto a Windows system is learning how many road blocks Windows places to void the attempt. The goal is to get into the _Boot Loader Menu_. From here one can reboot directly into the specific device, which in this case is a USB-stick.
Getting through the installation process of Debian is straightforward.
Network management gave some errors, since I decided to install without Ethernet connection. I was hoping to use the existing option on Windows over wireless. Seems like it is not that straightforward.
Setting a timezone is a bit annoying, since it is based off of language. After choosing US English as the language, I am only given the timezones within US territory. This didn't bug me too much, since I knew I can adjust it post install.
Getting through installation went quite smooth and after the reboot, I was hoping to be greeted by the sign-in mask of the desktop. Only to be surprised by the terminal login options.
🧵 6/9
## The source list
When installing Debian via a USB-stick, the source list will be the stick. This is okay as initial setup, though sucks if one wants to install additional software.
First enter root mode via
```
su - root
```
By default one cannot run a command with prepending the `sudo` keyword, since the initial user is not assigned to the `sudo` group.
Once in root mode, edit the file
```
vi /etc/apt/sources.list
```
and update to
```
deb http://deb.debian.org/debian bookworm main non-free-firmware
deb-src http://deb.debian.org/debian bookworm main non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb-src http://deb.debian.org/debian-security/ bookworm-security main non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main non-free-firmware
```
[Source](https://wiki.debian.org/SourcesList)
Once done updates and upgrades should work.
`apt update && apt upgrade -y`
🧵 7/9
## Update user group
While still in root mode, one can take the opportunity to add the current user to `sudo` group.
```
usermod -aG sudo <username>
```
[Source](https://www.linuxtechi.com/things-to-do-after-installing-debian-12/)
🧵 8/9
## Enable Firewall
It is recommended to install the firewall on the operating system level.
```
sudo apt install ufw -y
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
```
[Source](https://www.linuxtechi.com/things-to-do-after-installing-debian-12/)
🧵 9/9
## Desktop approach
With Debian's bare bone nature one can choose many ways to deal with the UI.
Chose the desktop approach and chose [xfce](https://linuxcapable.com/how-to-install-xfce-on-debian-linux/) due to its lightweight nature.
Although xfce is quick, missing the default suite of software the Gnome provides.
At least xfce has a default shortcut for the terminal in comparison to Gnome on Fedora.
@barefootstache Sounds like LMDE would have been easier. Up and running in 10 minutes. 😉
@rspfau lots of other distros would have been easier and don't know if I would gotten the same learning experience
🧵 5/9
## Bare bone nature of Debian
Debian's bare bone nature is shocking and refreshing at the same time. When coming from a feature rich system like Fedora, one thinks that lots of terminal functions are a given.
Learning that tools like `git` and `curl` are not default tools on every system is surprising.
This is a good thing to know since Debian offers the perfect environment to test out how good one's project setups truly are. Just start a #VirtualBox, install the bare minimum tools, and see if the script runs without any other tweaking from one own side.