Skip to main content

Download, compile, and install software using GNU Stow

Project description

Stow-Install

You often don't have root access on a shared machine, like a compute cluster, but you still want to install software. GNU Stow makes it easy to install and uninstall self-compiled programs and libraries in your home folder.

This tool makes this even easier by handling the download, the compilation and the installation for you, in simple cases as easily as a pip install.

Installation

To set things up, run the provided Bash script, to create the directory tree and add lines to your .bashrc that add paths to environment variables. It also copies the stow-install script to ~/.local/bin_priority (which will be in your $PATH now).

git clone git@github.com:isarandi/stow-install.git
cd stow-install

bash setup_stow_install.sh

Now open a new terminal to make sure the changes to your .bashrc are applied.

If Stow is not installed on the system, stow-install can compile and install stow itself as well:

stow-install --name=stow --source=http://ftp.gnu.org/gnu/stow/stow-latest.tar.gz --bootstrap

However, there may be missing dependencies, so you may have to install those manually.

Usage

To install a program or library, you need to provide a name for it and a source (filename, source directory path or URL). For example, to install an up-to-date version of CMake, you can run:

 stow-install --name=cmake-3.27 --source=https://github.com/Kitware/CMake/releases/download/v3.27.7/cmake-3.27.7.tar.gz

This should download, extract, compile and stow CMake, so that the cmake command will use this newly installed version.

You can also specify compilation config arguments that will be passed to ./configure or cmake, for example, to build a new version of GCC, you can run (notice the arguments after the --, they will be passed to ./configure):

$LOCAL=$HOME/.local

stow-install --name=gmp-6.3 --source=https://gmplib.org/download/gmp/gmp-6.3.0.tar.xz -- --enable-static --enable-shared
stow-install --name=mpfr-4.2 --source=https://www.mpfr.org/mpfr-current/mpfr-4.2.1.tar.xz -- --with-gmp=$LOCAL
stow-install --name=mpc-1.3 --source=https://ftp.gnu.org/gnu/mpc/mpc-1.3.1.tar.gz -- --with-gmp=$LOCAL --with-mpfr=$LOCAL
stow-install --name=gcc-11.3 --source=https://ftp.gwdg.de/pub/misc/gcc/releases/gcc-11.3.0/gcc-11.3.0.tar.gz -- --with-gmp=$LOCAL --with-mpfr=$LOCAL --with-mpc=$LOCAL --disable-multilib

Manual intervention

Sometimes the automated process breaks down somwhere, and you may want to manually fix things. For this, useful commands are given in the bash_scripts directory to perform command by command what the automatic tool would do.

Background

What's Stow and why is it good?

If you compile and install a lot of software into your home without using stow (or a similar tool), you end up with a bunch of files in the bin, lib etc. folders and no way of knowing which file was put there by which piece of software. This makes it difficult to remove installations if it turns out that you don't need or like the library anymore or you want to use a different version.

GNU Stow is a “symbolic link farm”. All your software installations physically live under a separate ~/.local/stow/name-of-the-library folder, and Stow creates symbolic links in ~/.local/bin, ~/.local/lib etc. When you need to uninstall software X, Stow will simply search for symlinks that point into ~/.local/stow/X/ and delete them.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

stow_install-0.1.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

stow_install-0.1.0-py3-none-any.whl (7.3 kB view details)

Uploaded Python 3

File details

Details for the file stow_install-0.1.0.tar.gz.

File metadata

  • Download URL: stow_install-0.1.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for stow_install-0.1.0.tar.gz
Algorithm Hash digest
SHA256 59e79abc440c8fefbf84f18df3bfd8780f46f484b65de5c7c5e5d4a21e37f10a
MD5 1ffb9a629113b76ec2222c61141c89c9
BLAKE2b-256 8399c692318419d2ec75b8b03d66a66b0ba9aeb8c38a87b30834e38ed22817a1

See more details on using hashes here.

Provenance

The following attestation bundles were made for stow_install-0.1.0.tar.gz:

Publisher: python-publish.yml on isarandi/stow-install

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file stow_install-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: stow_install-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for stow_install-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 39f3b9debfd5f0e899a958dc007c0fbdc3e9316a0cd3b34464740dc0d8892317
MD5 80b0a49b5e8172d205e4406af186b3cf
BLAKE2b-256 77214ffbbe854e62b3187d4d4daca5b8ffcf8e3c6d7a1f4950abfff377f2fcbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for stow_install-0.1.0-py3-none-any.whl:

Publisher: python-publish.yml on isarandi/stow-install

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page