从pypi轻松安装应用程序并自动更新它们

autopip的Python项目详细描述


自动IP

从pypi轻松安装应用程序并自动更新它们。

autoip使用venvvirtualenv,使用 pip,并自动为/usr/local/bin中安装的脚本创建符号链接 你可以很容易地使用它们。每个应用程序版本都干净地安装到自己的虚拟环境中。或者,它可以 设置crontab条目以自动更新应用程序。

在开始之前,请检查您的python安装,而autoip可以安装在任何python上运行的python应用程序 版本,它需要Python3.6+才能运行:

curl -s https://raw.githubusercontent.com/maxzheng/autopip/master/etc/check-python.py | python

要安装autoip到/usr/local/bin

sudo pip3 install autopip

不必担心python安装会受到污染,因为autoip没有安装依赖项,而且永远不会。

或者,您可以将其安装在虚拟环境中,这是您为其手动创建的最后一个虚拟环境 安装python应用程序:

python3.6 -m venv ~/.virtualenvs/autopip
source ~/.virtualenvs/autopip/bin/activate
pip3 install autopip

(可选)创建安装目录并发送给用户,以便autopip可以在 /usr/local/bin

sudo mkdir /usr/local/opt /usr/local/var
sudo chown -R $(whoami) /usr/local/*

现在,您可以轻松地安装来自pypi的任何应用程序:

$ autopip install workspace-tools --update daily
Installing workspace-tools to /usr/local/opt/apps/workspace-tools/3.2.2
Daily auto-update enabled via cron service
Updating symlinks in /usr/local/bin
+ wst

安装路径是根据用户对/opt/usr/local/opt的写入权限选择的。如果你没有 无论是哪种权限,autopip都会将应用程序安装到位于~/.apps的用户主页,并在~/bin中使用脚本符号链接 因此,您需要将~/bin添加到path env var中,以便从已安装的应用程序轻松运行脚本。安装 脚本符号链接到/usr/local/bin,用户可以根据建议在/usr/local/*中写入chown/chmod目录 或者使用sudo(即作为根)运行autopip。要查看选择特定路径的原因,请附加--debug 运行时在autopip之后。

为了节省键入几个字母的时间,您还可以使用appalias–缩写为autopip

$ app install ansible-hostmanager
Installing ansible-hostmanager to /usr/local/opt/apps/ansible-hostmanager/0.2.3
Updating script symlinks in /usr/local/bin
+ ah

要为较旧或特定的python版本安装应用程序,请使用--python选项:

$ app install ducktape --python 2.7
Installing ducktape to /usr/local/opt/apps/ducktape/0.7.3
Updating script symlinks in /usr/local/bin
+ ducktape

显示当前安装的应用及其脚本:

$ app list --scripts
ansible-hostmanager  0.2.3   /usr/local/opt/apps/ansible-hostmanager/0.2.3
                             /usr/local/bin/ah
ducktape             0.7.3   /usr/local/opt/apps/ducktape/0.7.3
                             /usr/local/bin/ducktape
workspace-tools      3.2.2   /usr/local/opt/apps/workspace-tools/3.2.2      [updates daily]
                             /usr/local/bin/wst

手动更新所有应用程序:

$ app update
ansible-hostmanager is up-to-date
ducktape is up-to-date
workspace-tools is up-to-date

要卸载:

app uninstall ducktape

您甚至可以通过安装自身来自动更新autoip

$ app install autopip==1.* --update monthly
Installing autopip to /usr/local/opt/apps/autopip/1.0.0
Monthly auto-update enabled via cron service
Updating symlinks in /usr/local/bin
* app (updated)
* autopip (updated)

现在,这很方便!;)

如果需要使用私有的pypi索引,只需在pip.conf中配置索引url,因为autoip使用pip来安装应用程序。

要控制跨多个主机/用户的版本控制和统一安装,还可以定义一个autoip 使用入口点的安装组。参见developer-tools中的示例 包裹。

常见问题解答

  1. cron作业在安装期间有一个随机的分钟集,并且在所有时间间隔内每小时运行一次。
  2. 一次最多保存两个版本的应用程序。

热门话题
java中最小长度的字数计算   java事务处理JavaEE 6   java如何进行5分钟刷新并检查txt是否被修改?   java可以同时拖动多个对象   变量长、双精度、字节、字符在Java中的用途是什么?   spring将XMLBean配置转换为java配置   java检测不可靠网络上的TCP丢失   Java:TCP加密、SSL和Netty   在java中,如何使用isAssignableFrom的映射避免多个if-else   在J2EE动态Web项目中找不到java CSS文件   java遍历领域查询到RealmList   安卓阅读网站内容Java   java如何修改/自定义/反编译Opera mini jar文件?   java死锁播放框架如何使用控制器中的参数检查@RestrictedResource?   java在MS Excel中导入xml文件我们如何使用Python或任何其他编程语言自动化此流程?   java如何暂停正在运行的线程并在需要时重新启动同一线程?