diff options
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.md | 52 |
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 @@ | |||
| 2 | Title: Debian based riced up distribution for Developers and DevOps folks | 2 | Title: Debian based riced up distribution for Developers and DevOps folks |
| 3 | Description: Debian based riced up distribution for Developers and DevOps folks | 3 | Description: Debian based riced up distribution for Developers and DevOps folks |
| 4 | Slug: debian-based-riced-up-distribution-for-developers-and-devops-folks | 4 | Slug: debian-based-riced-up-distribution-for-developers-and-devops-folks |
| 5 | Listing: false | 5 | Listing: true |
| 6 | Created: 2021-12-01 | 6 | Created: 2021-12-01 |
| 7 | Tags: [] | 7 | Tags: [] |
| 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 | ||
| 109 | The source for the whole thing is located on Github https://github.com/mitjafelicijan/dfd-rice. | ||
| 110 | |||
| 111 | Currenly 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 | |||
| 136 | Install script also allows you to install only specific packages (example for: essentials ohmybash docker rust). | ||
| 137 | |||
| 138 | ```sh | ||
| 139 | su - 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 | |||
| 145 | Currently, 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 | |||
| 148 | Let'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 | ||
| 127 | I 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. | 170 | I 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 | ||
| 137 | Because 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. | 180 | Because 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/) | 182 | Check [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 | ||
| 187 | Take 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. | ||
