基于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

$ sudo steeve stow tig 2.1.1

在封面下steeve stow创建到当前版本的符号链接 运行stowcurrent的内容链接到/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

要重新显示符号链接,只需运行steeve stow

$ sudo steeve stow tig

而且steeve可以管理二进制分布。例如,让我们安装 p4merge二进制文件:

$ 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/

现在,使用steeve install

从目录安装p4merge
$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639

这将把文件夹内容复制到/usr/local/stow/p4v/2015.2.1315639, 从当前版本中删除存放的文件(如果有),链接2015.2.1315639至 当前,并将文件存放到/usr/local中。

如果忘记安装一些文件,可以install安装一次该包 再次:

$ sudo steeve install p4v 2015.2.1315639 ./p4v-2015.2.1315639

这是通过卸载软件包然后重新安装来实现的,因此 steeve将在重新安装之前提示您。

要删除存放的文件,请使用命令unstow

运行steeve
$ sudo steeve unstow tig

要列出包,请运行命令ls,不带参数:

$ steeve ls
node
tig

要列出包版本,请运行命令ls,包名称为:

$ steeve ls tig
  2.1
* 2.1.1

steeve用上面的星号标记当前版本。

要删除包的特定版本,请对包运行命令uninstall。 名称和版本:

$ sudo steeve uninstall tig 2.1.1

如果版本2.1.1是当前版本,这将删除存放的文件,并删除文件夹 2.1.1

最后,要删除包含所有版本的包,请运行命令uninstall 威斯康辛州只有一个包名:

$ sudo steeve uninstall tig

Thanks

感谢GoboLinux的作者 借鉴了包装结构的思想。

感谢Armin Ronacher和Click的贡献者,也就是^{EM1}$*点击*nice。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
二进制字符串的java NumberFormatExceprion   java如何在Neo4j中查找/匹配/选择标识符名称   java哪一年的日期与原始年份相同?   java什么时候JAXB可以用于Json而不是XML?   java使用PayPal权限API进行PayPal支付   java Getting error在使用安卓 vision api扫描二维码时加载图像失败   java直接突出显示RichTextFX中的一个文本范围   java Resolve@RegisteredAuth2AuthorizedClient,其令牌在spring Security 5.2的spring server之外获得。十、   yyyymmddhhmmss的Java正则表达式   java我试图将google recaptcha与spring mvc集成,但GreCaptCharResponse总是返回false。这里有一些代码   java使用JsonPath将文本转换为json   java无法解析符号。Maven依赖项已就位,但代码为红色   java使用循环查找范围内具有不同数字的数字   java这个SwingWorker是否不重用ThreadPoolExecutor中的线程?