Install something inside Toolbox

I installed vim with:
dnf install vim

i try opening vim with

vim

/var/lib/flatpak/exports/bin/org.vim.Vim: line 2: /usr/bin/flatpak: No such file or directory

Shoudnt it just work after installing it? Do i need to set the path?
My Silverblue .bashrc has vim added:
alias vim="org.vim.Vim"

Does the toolbox have its own .bashrc?

No, toolbox shares the home directory, that includes .bashrc. vim would have worked if you did not had that alias.

I need that alias to use vim in Silverblue. Without that alias i cant just use the vim command.

EDIT:

I removed the alias from my silverblue .bashrc and Vim works fine inside the toolbox container but it stopped working inside Silverblue.

Is it possible to have a seperate .bashrc in each toolbox?

Hello @littlenode,
If you installed vim in the toolbox you have to run it inside of the toolbox container as you normally would in a Workstation terminal (by entering vim at the prompt. It comes as part of the standard Silverblue install, minus the vim-enhanced package (which is what most want) so they will usually layer it with rpm-ostree install vim-enhanced as I have.
You could setup the aliases inside of the toolbox in it’s /etc and revert your ~/.bashrc to it’s original state to rectify this to your liking.
For what it is worth, I have vim on my toolbox, but I never installed it there, I have only layered the vim-enhanced package on the core image of Silverblue.

Thank you! Will do it now.

Im wondering if its possible to install a specific nvidia driver inside a toolbox. Sadly the Machine Learning Cuda world is a bit in a move from TF 1.4 to 2.0 and some older code still needs cuda 10 and i cant use 10.2 since they removed stuff.

I tried despreadly to install NV410 and Cuda 10 but i cant do it.

I was thinking to have a toolbox for for older code and one for newer code. One toolbox container running older Nvidia drivers and cuda 10 and one the newest drivers and newest cuda.

Is that even a feasible aproach to solving my issiue?

Yes it is, just as you do it now with `dnf install , there is a discussion about doing this for Epson scanners, which worked for the individuals there (at https://ask.fedoraproject.org).

Yes, you can create a toolbox container using the --container option (toolbox create --container <name-desired> you then enter it with toolbox enter <name-desired>. You can have as many as your hardware can conceivably handle apparently.

Ok i will try again to install diffrent drivers in each toolbox. Im logged into two toolboxes in diffrent tabs.
Sadly both are username@toolbox instead of username@containername. Its hard to know which is which.

Any way i can rename the hostname when im inside the container?
I would like username@Tensorflow1.4 and username@Tensorflow2.0.

Another stupid question:
If i setup a container and i got the basis of it running nicely. Is it possible to clone that container and rename the clone and modify the clone. Just so i dont have to do the basic setup twice.

There are no stupid questions. You can use podman to commit a running container, which will create an image of your running container. This you would do from the host. You can also export a containers filesystem and import one too using podman.
With a committed image you could then create another container either with podam/buildah or toolbox. Using toolbox to do so would be like this … toolbox create --container <mycontainer> --image <my-commit-image>.
So step by step,

  1. toolbox enter <container name>
  2. podman ps to get running container names
  3. podman commit <my running container> note the image ID created
  4. toolbox create --container <my-container-name> --image <committed-image> the < & > symbols should not be used, they merely indicate options.
2 Likes

Nice! Thank you so much.

Lets say i did some stuff not inside the toolbox but the main system how do i save ostree. I know after installing local or layered packages i can reboot and its “commited” but lets say i didnt install anything with “rpm-ostree install” but i changed some stuff in my main system how do i commit those changes?

I read something about pin but im not sure thats what im looking for. Is there any documentation on this or do you know how to do it?

Well, it depends upon the changes. If you are thinking your dot files (ie .bashrc, .vim, or /etc/bashrc) they will all be the same after an update as they were before. To pin your commit, is intended to give you a reliable known state to boot, usually this is done with all layers intending to capture everything the way you have it. For that you use sudo ostree admin status first to get a list of deployments. Then you use sudo ostree admin pin <deploymeny-ID> to pin the particular deployment desired. The default deployment number is usually the first, which is number 0. Earlier deployments are 1, then 2, etc… You can also tell ostree to keep more than two commits all the time outside of the pinned deployment. I suggest you read the docs for rpm-ostree and read the docs for ostree as well.
So in short, if what you change on your system is aliases in /etc, and /etc/bashrc or in ~/.bashrc or .vim, etc… no fear it will be there after reboot. Flatpak apps are also not affected by the rpm-ostree beyond the actual flatpak tooling and runtime, which normally don’t affect the user.

Well, there is a way to have a section in .bashrc that is ignored by toolbox. See this post.