<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Linux on entangledDEV</title>
        <link>/categories/linux/</link>
        <description>Recent content in Linux on entangledDEV</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en-us</language>
        <lastBuildDate>Sun, 01 Feb 2026 00:09:25 -0600</lastBuildDate><atom:link href="/categories/linux/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Fedora Silverblue Toolbox 101</title>
            <link>/p/fedora-silverblue-toolbox-101/</link>
            <pubDate>Thu, 26 Dec 2024 06:14:43 -0500</pubDate>
            <guid>/p/fedora-silverblue-toolbox-101/</guid>
            <description>&lt;p&gt;I&amp;rsquo;m a total fan of immutable Operating System. the peace of mind, stability, and consistency they provide is invaluable but getting started can be a bit difficult, specially if you&amp;rsquo;re coming for more traditional operating systems (mutable ones).&lt;/p&gt;&#xA;&lt;p&gt;With this post I aim to show my current workflow working on &lt;a class=&#34;link&#34; href=&#34;https://fedoraproject.org/atomic-desktops/silverblue/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Fedora Silverblue&lt;/a&gt;, I am by no means an expert on Fedora SilverBlue. I want to share the way I use these systems and I hope to helps other by sharing my current understanding and workflows.&lt;/p&gt;&#xA;&lt;p&gt;I intend to update this post with new workflows and ideas that helped me to create this new mental map for stateless operating systems. I wish you find this useful.&lt;/p&gt;&#xA;&lt;h1 id=&#34;how-to-install-vscode&#34;&gt;&lt;a href=&#34;#how-to-install-vscode&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;How to install VSCode&#xA;&lt;/h1&gt;&lt;p&gt;As a developer I find &lt;a class=&#34;link&#34; href=&#34;https://code.visualstudio.com/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;VSCode&lt;/a&gt; quite useful for a myriad of programming task, so a natural question arise: How do we install it on Fedora Silverblue?&lt;/p&gt;&#xA;&lt;p&gt;Normally we would add the official Microsoft repository and install it using &lt;code&gt;dnf&lt;/code&gt; but in Silverblue we don&amp;rsquo;t have access to &lt;code&gt;dnf&lt;/code&gt;, instead we have &lt;code&gt;rpm-ostree&lt;/code&gt;. &lt;code&gt;rpm-ostree&lt;/code&gt; is a tool used to layer other software on top of your current Fedora image. But I find this not ideal since we will start to pollute our host OS, a better alternative is using Toolboxes.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;toolbox&lt;/code&gt; is a tool used to create separated mutable containers where we can install our tools, normally used to install CLI software is also a great alternative to install our IDE.&lt;/p&gt;&#xA;&lt;p&gt;The magic of &lt;code&gt;toolbox&lt;/code&gt; is that it creates a separate mutable environment for us to install and use software that was not installed by default in our stateless operating system. This also apply to the repositories added to the system, each toolbox contains a separate list of repositories, independent of each other, even from the host.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Bear in mind these containers are not completely isolated from the host, as a consequence you cannot install mindlessly any unknown software thinking it&amp;rsquo;s isolated and safe to run. Please &lt;strong&gt;be cautious and treat the security inside these containers the same as you would with you local host system&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;These toolboxes won&amp;rsquo;t pollute our main operating system and once we delete them, all the installed apps will be gone and our system will remain clean and stable. There is one catch, containers have by default access to our &lt;code&gt;$HOME&lt;/code&gt; directory, so if the program creates configurations or files in this directory they will remain after the deletion of the container (you can delete these files if needed).&lt;/p&gt;&#xA;&lt;p&gt;After this introduction let&amp;rsquo;s start with the installation of VSCode inside a toolbox.&lt;/p&gt;&#xA;&lt;h2 id=&#34;creating-the-toolbox&#34;&gt;&lt;a href=&#34;#creating-the-toolbox&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Creating the toolbox&#xA;&lt;/h2&gt;&lt;p&gt;Let&amp;rsquo;s start by creating a new toolbox container, open a new terminal on the host OS and type the following:&lt;/p&gt;&#xA;&lt;p&gt;To create the toolbox we enter:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;You can give any name to your toolbox by replacing &lt;code&gt;programming-box&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;toolbox create programming-box&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;To enter the toolbox we type:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;toolbox enter programming-box&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The terminal prompt will add a small hexagon, this tell us we&amp;rsquo;re inside the toolbox.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installing-vscode-inside-the-toolbox&#34;&gt;&lt;a href=&#34;#installing-vscode-inside-the-toolbox&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Installing VSCode inside the toolbox&#xA;&lt;/h2&gt;&lt;p&gt;Now that we are inside the toolbox we can use is as a regular mutable OS, inside the toolbox we have access to &lt;code&gt;dnf&lt;/code&gt;. This mean that the installation steps are the same as &lt;a class=&#34;link&#34; href=&#34;https://code.visualstudio.com/docs/setup/linux#_rhel-fedora-and-centos-based-distributions&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;the official guide from Microsoft&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Inside the toolbox run the following commands to add the official repository and install the software.&lt;/p&gt;&#xA;&lt;p&gt;Add the official repository by running this inside the toolbox.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; -e &lt;span class=&#34;s2&#34;&gt;&amp;#34;[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc&amp;#34;&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; sudo tee /etc/yum.repos.d/vscode.repo &amp;gt; /dev/null&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Update the repository list to get the newest software available.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dnf check-update&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Install VSCode inside the toolbox.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo dnf install code &lt;span class=&#34;c1&#34;&gt;# or code-insiders&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;running-vscode&#34;&gt;&lt;a href=&#34;#running-vscode&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Running VSCode&#xA;&lt;/h2&gt;&lt;p&gt;You may noticed that after installing the software you cannot find it in the installed apps, this is due to the nature of the isolated containers. The app is only accessible from inside the toolbox, so a system wide access is not possible.&lt;/p&gt;&#xA;&lt;p&gt;If you want a system-wide access to the software, you could consider using a community-driven Flatpak or layering the app using &lt;code&gt;rpm-ostree&lt;/code&gt;. I would not recommend layering unless is strictly necessary for your use case, and using a Flatpak may impose some extra steps to access the tools inside your toolboxes. Installing via dnf inside a toolbox seems like the best solution for most cases.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Flatpaks are the recommended way to install GUI apps in Fedora Silverblue but sometimes this way of working may create conflicts with other tools. For programming I find having everything I need (from toolchains to IDEs) inside a toolbox a hassle free solution.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;To run VSCode, enter the toolbox container where the app is installed and run the following.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;code&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will open the VSCode GUI and you can use it as usual.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;You can install your programming toolchains inside the toolbox that contains VSCode and start using VSCode with these tools.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;considerations&#34;&gt;&lt;a href=&#34;#considerations&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Considerations&#xA;&lt;/h2&gt;&lt;p&gt;You can follow this steps to install any tool you need. For example, GitHub CLI tools are not included by default in Fedora repositories, so we can add the repository and install the software in a similar fashion as we did with VSCode.&lt;/p&gt;&#xA;&lt;p&gt;Other CLI tools that are part of Fedora repositories can be installed easily inside a toolbox by using &lt;code&gt;sudo dnf install app_name&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h1 id=&#34;conclusion&#34;&gt;&lt;a href=&#34;#conclusion&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Conclusion&#xA;&lt;/h1&gt;&lt;p&gt;Immutable Operating Systems are a great way to get rock solid and performant systems without worrying about updates or dependency problems. They container workflow is a great way to separate your tools and projects.&lt;/p&gt;&#xA;&lt;p&gt;By using toolboxes you can add and configure your toolchains and programs as you would in a Mutable OS, with the adding benefit that once you&amp;rsquo;re done you can delete the changes and your system will stay clean and secure.&lt;/p&gt;&#xA;&lt;p&gt;I wish these small how&amp;rsquo;s to helps you in your journey towards immutability.&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
