This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Tiny GNU Stow–based package manager.

Summary

steeve is not a replacement for any full-fledged package manager like dpkg or yum, but instead an addition, designed to handle manually built software and binary distributions. Instead of polluting /usr/local with binaries and libraries that aren’t tracked by any package manager and thus cannot be safely removed or upgraded, steeve provides a structured approach that allows for managing multiple software versions in a matter of a command.

Packages

By default packages live in /usr/local/stow. This location is configured either via environment variable STEEVE_DIR or command-line option -d, --dir. A package consists of one or multiple subdirectories named after version. Each version has directories with files that will be linked into target directory, which is /usr/local by default. Target directory can be changed via environment variable STEEVE_TARGET or command-line option -t, --target. The prominent part of a package is symbolic link named current that points to current version.

Here’s an example of a valid package tree:

$ tree /usr/local/stow/tig
/usr/local/stow/tig
├── 2.1
│   ├── bin
│   │   └── tig
│   └── etc
│       └── tigrc
├── 2.1.1
│   ├── bin
│   │   └── tig
│   └── etc
│       └── tigrc
└── current -> /usr/local/stow/tig/2.1.1

7 directories, 4 files

Tree Folding

The main gotcha is GNU Stow’s tree folding mechanism. Please, get accustomed to it by reading chapter Installing Packages of GNU Stow manual. You can disable folding by setting environment variable STEEVE_NO_FOLDING or passing --no-folding option.

Dependencies

  • Python 2.7
  • GNU Stow 2.2

Installation

Get the package from PyPI:

$ pip install steeve

Or get the latest development version:

$ git clone https://github.com/Perlence/steeve.git
$ cd steeve
$ pip install --editable .

To install bash completion, download the script and source it from your .bashrc.

To install fish completion, download the script and put it in ~/.config/fish/completions.

Usage

Run steeve with --help option to see the list of commands:

$ steeve --help

To see usage of a command, run:

$ steeve COMMAND --help

steeve helps you install manually built programs. For example, to install tig, text-mode interface for git, first download the release tarball:

$ curl -O -L http://jonas.nitro.dk/tig/releases/tig-2.1.1.tar.gz

Then configure, make and install with prefix:

$ ./configure
$ make prefix=/usr/local
$ sudo make install prefix=/usr/local/stow/tig/2.1.1

Finally, stow tig 2.1.1 into /usr/local with steeve:

$ sudo steeve stow tig 2.1.1

Under the covers steeve stow creates a symbolic link to current version and runs stow to link contents of current into /usr/local:

$ sudo ln -s /usr/local/stow/tig/2.1.1 /usr/local/stow/tig/current
$ sudo stow -t /usr/local -d tig current

To restow symbolic links, simply run steeve stow:

$ sudo steeve stow tig

Also steeve can manage binary distributions. For instance, let’s install p4merge binaries:

$ curl -O -L http://cdist2.perforce.com/perforce/r15.2/bin.linux26x86_64/p4v.tgz
$ tar xf p4v.tgz
$ ls p4v-2015.2.1315639
bin/  lib/

Now, install p4merge from directory with steeve install:

$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639

This will copy folder contents to /usr/local/stow/p4v/2015.2.1315639, delete stowed files from current version if any, link 2015.2.1315639 to current, and stow files into /usr/local.

If you forgot to install some files, you can install the package once again:

$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639

It’s achieved by uninstalling the package followed by installing it again, so steeve will prompt you before reinstalling.

To delete stowed files, run steeve with command unstow:

$ sudo steeve unstow tig

To list packages, run command ls without arguments:

$ steeve ls
node
tig

To list package version, run command ls with package name:

$ steeve ls tig
  2.1
* 2.1.1

steeve marks current version with an asterisk as seen above.

To remove specific version of a package, run command uninstall with package name and version:

$ sudo steeve uninstall tig 2.1.1

This will delete stowed files if version 2.1.1 is current, and remove folder 2.1.1.

Finally, to remove package with all its versions, run command uninstall with only a package name:

$ sudo steeve uninstall tig

Thanks

Thanks to authors of GoboLinux from which I borrowed the idea of package structure.

Thanks to Armin Ronacher and contributors for Click which is *click* nice.

Release History

Release History

0.2

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
steeve-0.2-py2-none-any.whl (8.9 kB) Copy SHA256 Checksum SHA256 py2 Wheel Dec 29, 2015
steeve-0.2.tar.gz (6.2 kB) Copy SHA256 Checksum SHA256 Source Dec 29, 2015

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting