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

pip install stow-install

Then run stow-install --setup to create the ~/.local directory structure and to add environment variables to your .bashrc. Finally start a new shell session or source ~/.bashrc to activate the changes.

You can also directly download the stow-install script and run it from anywhere or place it in a directory in your $PATH.

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

stow-install auto-detects the build system (CMake, Autotools, Meson, or plain Makefile).

Manual intervention

Sometimes the automated process breaks down somewhere, 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.

This package uses stow-python, my Python reimplementation of GNU Stow, so no Perl dependency is required.

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.2.tar.gz (8.9 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.2-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: stow_install-0.1.2.tar.gz
  • Upload date:
  • Size: 8.9 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.2.tar.gz
Algorithm Hash digest
SHA256 cb282f4e0fdbc242c1cfc0b24d61c38caf77a7be0a6dafbbef60bd1c7255c4b1
MD5 60466494f32a2435939506aff93567a3
BLAKE2b-256 41753a40d7f8060caa67565f3838638c2681a89b5dba9931829516063b4b3a9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for stow_install-0.1.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: stow_install-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 7.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 27ef44879eb258e399e76a735822b707cf16633b733e3b9ee20698df16ce0572
MD5 e4a4b499f9f2256f3bfa183184e69896
BLAKE2b-256 0b3ee99ca5e34a7c01879837f530d2806cc30e2c70d72f077f35d54bdb877c8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for stow_install-0.1.2-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