aboutsummaryrefslogtreecommitdiff
path: root/posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md
diff options
context:
space:
mode:
Diffstat (limited to 'posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md')
-rw-r--r--posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md52
1 files changed, 48 insertions, 4 deletions
diff --git a/posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md b/posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md
index 55acd61..6b7ecd4 100644
--- a/posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md
+++ b/posts/2021-12-01-debian-based-riced-up-distribution-for-developers.md
@@ -2,7 +2,7 @@
2Title: Debian based riced up distribution for Developers and DevOps folks 2Title: Debian based riced up distribution for Developers and DevOps folks
3Description: Debian based riced up distribution for Developers and DevOps folks 3Description: Debian based riced up distribution for Developers and DevOps folks
4Slug: debian-based-riced-up-distribution-for-developers-and-devops-folks 4Slug: debian-based-riced-up-distribution-for-developers-and-devops-folks
5Listing: false 5Listing: true
6Created: 2021-12-01 6Created: 2021-12-01
7Tags: [] 7Tags: []
8--- 8---
@@ -106,6 +106,49 @@ While all of them provided what I needed, I liked i3 the most. What particular c
106 106
107## Batteries included 107## Batteries included
108 108
109The source for the whole thing is located on Github https://github.com/mitjafelicijan/dfd-rice.
110
111Currenly included:
112- `non-free` (enables non-free packages in apt)
113- `sudo` (adds sudo and adds user to sudo group)
114- `essentials` (gcc, htop, zip, curl, etc...)
115- `wifi` (network manager nmtui)
116- `desktop` (i3, dmenu, fonts, configurations)
117- `pulseaudio` (pulseaudio with pavucontrol)
118- `code-editors` (vim, micro, vscode)
119- `ohmybash` (make bash pretty)
120- `file-managers` (mc)
121- `git-ui` (terminal git gui)
122- `meld` (diff tool)
123- `profiling` (kcachegrind, valgrind, strace, ltrace)
124- `browsers` (brave, firefox, chromium)
125- programming languages:
126 - `python`
127 - `golang`
128 - `nodejs`
129 - `rust`
130 - `nim`
131 - `php`
132 - `ruby`
133- `docker` (with docker-compose)
134- `ansible`
135
136Install script also allows you to install only specific packages (example for: essentials ohmybash docker rust).
137
138```sh
139su - root \
140 bash -c "$(wget -q https://raw.github.com/mitjafelicijan/dfd-rice/master/tools/install.sh -O -)" -- \
141 essentials ohmybash docker rust
142
143```
144
145Currently, most of these recipes use what Debian and this is totally fine with me since I never use bleeding edge features of a package. But if something major would come to light, I will replace it with a possible compilation script or something similar.
146
147
148Let's take a look at some examples in the installation script.
149
150
151##### Docker recipe
109 152
110```sh 153```sh
111# docker 154# docker
@@ -122,7 +165,7 @@ systemctl status docker --no-pager
122/sbin/usermod -aG docker $USERNAME 165/sbin/usermod -aG docker $USERNAME
123``` 166```
124 167
125### Making bash pretty 168##### Making bash pretty
126 169
127I really like [Oh My Zsh](https://ohmyz.sh/), but I don't like zsh shell. When I used it, I constantly needed to be aware of it and running bash scripts was a pain. So, I was really delighted when I found out that a version for bash existed called [Oh My Bash](https://ohmybash.nntoan.com/). Let's take a look at the recipe for installing it. 170I really like [Oh My Zsh](https://ohmyz.sh/), but I don't like zsh shell. When I used it, I constantly needed to be aware of it and running bash scripts was a pain. So, I was really delighted when I found out that a version for bash existed called [Oh My Bash](https://ohmybash.nntoan.com/). Let's take a look at the recipe for installing it.
128 171
@@ -136,8 +179,9 @@ wait ${T1}
136 179
137Because OhMyBash does `exec bash` at the end, this traps our script inside another shell and our script cannot continue. For that reason, I executed this in background. But that presents a new problem. Because this is executed in background, we lose track of progress naturally. And that strange trick with `T1=${!}` and `wait ${T1}` waits for the background process to finish before continuing to another task in bash script. 180Because OhMyBash does `exec bash` at the end, this traps our script inside another shell and our script cannot continue. For that reason, I executed this in background. But that presents a new problem. Because this is executed in background, we lose track of progress naturally. And that strange trick with `T1=${!}` and `wait ${T1}` waits for the background process to finish before continuing to another task in bash script.
138 181
139[Multi-Threaded Processing in Bash Scripts](https://www.cloudsavvyit.com/12277/how-to-use-multi-threaded-processing-in-bash-scripts/) 182Check [Multi-Threaded Processing in Bash Scripts](https://www.cloudsavvyit.com/12277/how-to-use-multi-threaded-processing-in-bash-scripts/) for more details.
140
141 183
142 184
185## Conclusion
143 186
187Take a look at https://github.com/mitjafelicijan/dfd-rice/blob/develop/tools/install.sh script to get familiar with it. This is just a first iteration and I will continue to update it because I need this in my life.