基于tiny gnu stow的包管理器
steeve的Python项目详细描述
基于小型GNU Stow的包管理器。
Summary
steeve不能替代任何成熟的包管理器,比如dpkg 或者yum,但它是一个附加组件,用于处理手动构建的软件 以及二进制分布。而不是用二进制文件污染/usr/local。 以及任何包管理器都没有跟踪的库,因此不能 安全删除或升级,steeve提供了一种结构化方法,允许 用于在一个命令中管理多个软件版本。
Packages
默认情况下,包位于/usr/local/stow中。此位置已配置 通过环境变量STEEVE_DIR或命令行选项-d, --dir。一个包由一个或多个以 版本。每个版本都有包含将链接到的文件的目录 目标目录,默认为/usr/local。目标目录可以 通过环境变量STEEVE_TARGET或命令行选项更改 -t,--target。包的突出部分是名为 current指向当前版本。
下面是一个有效的包树示例:
$ 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
主要的问题是gnu-stow的树折叠机制。拜托,习惯一下 通过阅读 GNU收起手册。可以通过设置环境变量禁用折叠 STEEVE_NO_FOLDING或传递--no-folding选项。
Dependencies
- python 2.7版
- GNU Stow 2.2
Installation
从pypi获取包:
$ pip install steeve
或获取最新的开发版本:
$ git clone https://github.com/Perlence/steeve.git
$ cd steeve
$ pip install --editable .
要安装bash completion,请下载script和 从您的.bashrc中获取。
要安装fish completion,请下载script和 把它放在~/.config/fish/completions中。
Usage
使用--help选项运行steeve以查看命令列表:
$ steeve --help
要查看命令的用法,请运行:
$ steeve COMMAND --help
steeve帮助您安装手动生成的程序。例如,要安装 tig,git的文本模式接口,第一个 下载发布tarball:
$ curl -O -L http://jonas.nitro.dk/tig/releases/tig-2.1.1.tar.gz
然后使用前缀进行配置、制作和安装:
$ ./configure $ make prefix=/usr/local $ sudo make install prefix=/usr/local/stow/tig/2.1.1
最后,用steeve将tig 2.1.1装入/usr/local 在封面下steeve stow创建到当前版本的符号链接
运行stow将current的内容链接到/usr/local: 要重新显示符号链接,只需运行steeve stow: 而且steeve可以管理二进制分布。例如,让我们安装
p4merge二进制文件: 现在,使用steeve install: 这将把文件夹内容复制到/usr/local/stow/p4v/2015.2.1315639,
从当前版本中删除存放的文件(如果有),链接2015.2.1315639至
当前,并将文件存放到/usr/local中。 如果忘记安装一些文件,可以install安装一次该包
再次: 这是通过卸载软件包然后重新安装来实现的,因此
steeve将在重新安装之前提示您。 要删除存放的文件,请使用命令unstow: 要列出包,请运行命令ls,不带参数: 要列出包版本,请运行命令ls,包名称为: steeve用上面的星号标记当前版本。 要删除包的特定版本,请对包运行命令uninstall。
名称和版本: 如果版本2.1.1是当前版本,这将删除存放的文件,并删除文件夹
2.1.1。 最后,要删除包含所有版本的包,请运行命令uninstall
威斯康辛州只有一个包名:$ sudo steeve stow tig 2.1.1
$ sudo ln -s /usr/local/stow/tig/2.1.1 /usr/local/stow/tig/current
$ sudo stow -t /usr/local -d tig current
$ sudo steeve stow tig
$ 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/
$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639
$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639
$ sudo steeve unstow tig
$ steeve ls
node
tig
$ steeve ls tig
2.1
* 2.1.1
$ sudo steeve uninstall tig 2.1.1
$ sudo steeve uninstall tig