mirror of
https://github.com/sstephenson/bats.git
synced 2026-02-25 17:28:11 +01:00
Created Install Bats Using GNU Stow (markdown)
36
Install-Bats-Using-GNU-Stow.md
Normal file
36
Install-Bats-Using-GNU-Stow.md
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Purpose
|
||||||
|
|
||||||
|
Sometimes you want to install a package like Bats, but you either don't want to install it in a system directory like /usr/local because you don't have root privileges, or you want to be able to manage multiple versions cleanly. [GNU Stow][1] can handle both use cases well, and installing or upgrading Bats with Stow is trivial.
|
||||||
|
|
||||||
|
## Installing as Root
|
||||||
|
|
||||||
|
stow=/usr/local/stow
|
||||||
|
version=$(libexec/bats -v | tr A-Z a-z | tr ' ' -)
|
||||||
|
|
||||||
|
# Unstow older versions of Bats.
|
||||||
|
shopt -s nullglob
|
||||||
|
old_bats=(`find "$stow" -type d -name bats-\*`)
|
||||||
|
for package in "${old_bats[@]}"; do
|
||||||
|
sudo stow --dir="$stow" --delete $(basename "$package")
|
||||||
|
done
|
||||||
|
|
||||||
|
sudo ./install.sh "${stow}/${version}"
|
||||||
|
sudo stow --dir="$stow" --restow "$version"
|
||||||
|
|
||||||
|
## Installing as User
|
||||||
|
|
||||||
|
mkdir ~/stow
|
||||||
|
stow=~/stow
|
||||||
|
version=$(libexec/bats -v | tr A-Z a-z | tr ' ' -)
|
||||||
|
|
||||||
|
# Unstow older versions of Bats.
|
||||||
|
shopt -s nullglob
|
||||||
|
old_bats=(`find "$stow" -type d -name bats-\*`)
|
||||||
|
for package in "${old_bats[@]}"; do
|
||||||
|
stow --dir="$stow" --delete $(basename "$package")
|
||||||
|
done
|
||||||
|
|
||||||
|
./install.sh "${stow}/${version}"
|
||||||
|
stow --dir="$stow" --restow "$version"
|
||||||
|
|
||||||
|
[1]: http://www.gnu.org/software/stow/
|
||||||
Reference in New Issue
Block a user