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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
59e79abc440c8fefbf84f18df3bfd8780f46f484b65de5c7c5e5d4a21e37f10a
|
|
| MD5 |
1ffb9a629113b76ec2222c61141c89c9
|
|
| BLAKE2b-256 |
8399c692318419d2ec75b8b03d66a66b0ba9aeb8c38a87b30834e38ed22817a1
|
Provenance
The following attestation bundles were made for stow_install-0.1.0.tar.gz:
Publisher:
python-publish.yml on isarandi/stow-install
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stow_install-0.1.0.tar.gz -
Subject digest:
59e79abc440c8fefbf84f18df3bfd8780f46f484b65de5c7c5e5d4a21e37f10a - Sigstore transparency entry: 780305902
- Sigstore integration time:
-
Permalink:
isarandi/stow-install@fc92e3688bb7bf34d837111065381f4afeadbd8e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/isarandi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fc92e3688bb7bf34d837111065381f4afeadbd8e -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
39f3b9debfd5f0e899a958dc007c0fbdc3e9316a0cd3b34464740dc0d8892317
|
|
| MD5 |
80b0a49b5e8172d205e4406af186b3cf
|
|
| BLAKE2b-256 |
77214ffbbe854e62b3187d4d4daca5b8ffcf8e3c6d7a1f4950abfff377f2fcbc
|
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
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
stow_install-0.1.0-py3-none-any.whl -
Subject digest:
39f3b9debfd5f0e899a958dc007c0fbdc3e9316a0cd3b34464740dc0d8892317 - Sigstore transparency entry: 780305905
- Sigstore integration time:
-
Permalink:
isarandi/stow-install@fc92e3688bb7bf34d837111065381f4afeadbd8e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/isarandi
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@fc92e3688bb7bf34d837111065381f4afeadbd8e -
Trigger Event:
release
-
Statement type: