.. role:: raw-html-m2r(raw)
:format: html
Install User Programs in Session Containers
===========================================
Sometimes you need new programs or libraries that are not installed in your environment. If so, you can install the new program into your environment.
NOTE: Newly installed programs are not environment dependent. It is installed in the user directory.
Install packages with linuxbrew
-------------------------------
If you are a macOS user and a researcher or developer who occasionally installs unix programs, you may be familiar with `homebrew `. You can install new programs using linuxbrew in Backend.AI.
Creating a user linuxbrew directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Directories that begin with a dot are automatically mounted when the session starts. Create a linuxbrew directory that will be automatically mounted so that programs you install with linuxbrew can be used in all sessions.
Create .linuxbrew in the Storage section.
With CLI:
.. code-block:: console
$ backend.ai vfolder create .linuxbrew
Let’s check if they are created correctly.
.. code-block:: console
$ backend.ai vfolder list
Also, you can create a directory using GUI console with same name.
Installing linuxbrew
^^^^^^^^^^^^^^^^^^^^
Start a new session for installation. Choose your environment and allocate the necessary resources. Generally, you don't need to allocate a lot of resources, but if you need to compile or install a GPU-dependent library, you need to adjust the resource allocation to your needs.
In general, 1 CPU / 4GB RAM is enough.
.. code-block:: console
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install.sh)"
Testing linuxbrew
^^^^^^^^^^^^^^^^^
Enter the brew command to verify that linuxbrew is installed. In general, to use ``linuxbrew`` you need to add the path where ``linuxbrew`` is installed to the PATH variable.
Enter the following command to temporarily add the path and verify that it is installed correctly.
.. code-block:: console
$ brew
Setting linuxbrew environment variables automatically
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To correctly reference the binaries and libraries installed by linuxbrew, add the configuration to ``.bashrc``. You can add settings from the settings tab.
Example: Installing and testing htop
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To test the program installation, let's install a program called ``htop``. ``htop`` is a program that extends the top command, allowing you to monitor the running computing environment in a variety of ways.
Let's install it with the following command:
.. code-block:: console
$ brew install htop
If there are any libraries needed for the ``htop`` program, they will be installed automatically.
Now let's run:
.. code-block:: console
$ htop
From the run screen, you can press q to return to the terminal.
1.6 Deleting the linuxbrew Environment
To reset all programs installed with linuxbrew, just delete everything in the .linuxbrew directory.
Note: If you want to remove a program by selecting it, use the ``brew uninstall [PROGRAM_NAME]`` command.
.. code-block:: console
$ rm -rf ~/.linuxbrew/*
Install packages with miniconda
-------------------------------
Some environments support miniconda. In this case, you can use `miniconda ` to install the packages you want.
Creating a user miniconda-required directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Directories that begin with a dot are automatically mounted when the session starts. Create a ``.conda``, ``.continuum`` directory that will be automatically mounted so that programs you install with miniconda can be used in all sessions.
Create ``.conda``, ``.continuum`` in the Storage section.
With CLI:
.. code-block:: console
$ backend.ai vfolder create .conda
$ backend.ai vfolder create .continuum
Let’s check if they are created correctly.
.. code-block:: console
$ backend.ai vfolder list
Also, you can create a directory using GUI console with same name.
miniconda test
^^^^^^^^^^^^^^
Make sure you have miniconda installed in your environment. Package installation using miniconda is only available if miniconda is preinstalled in your environment.
.. code-block:: console
$ conda
Example: Installing and testing htop
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To test the program installation, let's install a program called ``htop``. ``htop`` is a program that extends the top command, allowing you to monitor the running computing environment in a variety of ways.
Let's install it with the following command:
.. code-block:: console
$ conda install -c conda-forge htop
If there are any libraries needed for the ``htop`` program, they will be installed automatically.
Now let's run:
.. code-block:: console
$ htop
From the run screen, you can press q to return to the terminal.