模块化包管理器

yoyopkg的Python项目详细描述


悠悠

Want a better cross platform way to install program ? Yoyo help you to do this thanks to little .yoyo files containing easy to made instructions

它是如何工作的?

  • 只需键入yoyo install PACKAGE_NAME
  • 然后,yoyo将解析依赖项并安装它
  • 稍后,您还可以自定义yoyo安装文件,为自己的软件创建安装

yoyo cli

usage: yoyo.py [-h] [--local] [--force] [--nocache] {install,remove,update,list,details,verify} [package]

模式:

  • install [package name]安装程序包

    • --local本地安装
    • --force即使已经安装,也要安装它
    • --nocache重新下载,不要使用缓存
  • remove [package name]删除包

  • list列出所有程序包

  • details列出所有包含详细信息的包(desc和req)

  • update更新包列表

  • verify {package name}验证是否安装了所有软件包(如果指定,则为一个软件包)

编写yoyo文件的说明

创建一个.yoyo文件并将其存储在:~/.yoyo/store/y_local/modules/

您必须输入:

  • 名称(名称)

    设置安装名称。用于yoyo install的名称。

    NAME anaconda
    
  • 作者(姓名)

    设置作者名称。仅供参考。

    AUTHOR anaconda team
    
  • 信息(informations)

    设置描述。仅供参考。

    INFO Anaconda is a package manager for python
    
  • 版本(版本)

    设置版本。

    VERSION 3.5.2.0
    
  • 请求(请求1,请求x,…)

    设定要求。需求是其他包的名称。

    REQ python, curl
    

然后您必须填写functions

[INSTALL]

在内部,编写所有安装包的方法。

[VERIFY]

在内部,编写所有方法来验证软件包是否安装良好

这些功能的说明:

  • let(名称、值)

    创建变量并为其赋值

    LET url https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
    

    要访问变量,只需键入#name
    要连接它们,请使用#var1+#var2

  • savedir

    将当前目录保存在内存中

    SAVEDIR
    
  • chdir(目录)

    将当前目录更改为目录

    CHDIR /tmp/anaconda
    
  • 还原器

    将当前目录还原到savedir one

    RESTOREDIR
    
  • dl(url、文件夹、名称)

    下载URL并将其保存到文件夹/名称

    DL #url #INSTALLDIR __anaconda_install.tar.gz
    
  • 命令

    执行命令

    CMD sh #INSTALLDIR+__anaconda_install.tar.gz
    

    您可以设置一些选项,如

    NOCHECK dont check the command return code. In normal time if return code != 0, install will be stopped.
    HIDE hide the command output
    

    这些选项必须放在命令之前

    CMD NOCHECK exit 1
    CMD HIDE NOCHECK tree /
    
  • 打印(str)

    打印字符串

    PRINT Installing anaconda... it can takes some time. Install to #INSTALLDIR
    
  • 您可以使用类似于if的语句

    • 本地
    • 窗口
    • MacOS
    • Linux

    并将其与

    • 否则
    • 结束
    - LOCAL
    PRINT User want a local install
    - ELSE
    CMD sudo install
    - END
    
    - Windows
    PRINT Windows user
    CMD chocolatey install #choco_name
    - END
    

// Is use to comment a line

  • 默认值

    用于使用默认命令验证或安装

    [VERIFY]
    DEFAULT -> This will call `which #NAME` on linux
    
    [INSTALL]
    DEFAULT -> This will call `sudo apt install #NAME` on linux
    

全局变量

您可以访问一些全局变量:

  • INSTALLDIR安装二进制文件的目录
    ~.yoyo/installed/
  • DLDIR下载文件的缓存目录
    ~.yoyo/cache/dl
  • EXTRACTDIR提取文件的缓存目录
    ~.yoyo/cache/extract
  • MAINDIRconf和cache的主目录 ~.yoyo/installed

yoyo文件示例

cat ~/.yoyo/store/y_local/modules/fastlane.yoyo

NAME fastlane
AUTHOR fastlane
INFO fastlane is an open source platform aimed at simplifying Android and iOS deployment. fastlane lets you automate every aspect of your development and release workflow.
VERSION 2.99.1
REQ gem, gem-dev

[INSTALL]

- MacOS
PRINT You can also install fastlane using: brew cask install fastlane
- END

CMD sudo gem install fastlane -NV

[VERIFY]
DEFAULT
cat ~/.yoyo/store/y_local/modules/anaconda.yoyo

NAME anaconda
AUTHOR anaconda team
INFO Anaconda package manager
VERSION 3.5.2.0
REQ python, curl

[INSTALL]

LET url https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
LET name __anaconda3-5.2.0-Linux-x86_64.sh

PRINT Installing at #DLDIR+#name

SAVEDIR

DL #url #DLDIR #name
CMD sh #DLDIR+#name

RESTOREDIR

[VERIFY]
DEFAULT

待办事项

Cross platform Update Package version Online stores Better handling of /lib etc... URGENT !!!!!! RENAME SRC TO YOYOSRC IN .local/lib/python3.6/site-package/ #TODO only load store needed !!!!!

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

推荐PyPI第三方库


热门话题
java如果数组是单调递增或单调递减的,则它是单调的   java异步任务:doInBackground未完成   java数组逻辑错误   在Java桌面应用程序中加载应用程序属性   小程序windows上的Java控制面板如何与机器上安装的许多不同版本的Java一起工作?   许多循环的java循环策略   java Android Studio无法转到管理页面   java为什么集成测试的执行时间在SpringBoot2.2中显著增加?   java Grails dbmupdate失败:MySQLSyntaxErrorException:您的SQL语法有错误   字符串非常简单:用Java编写“”   java Wicket反馈消息和AjaxButton   java Oreo、默认短信应用程序和操作通过消息进行响应   Java将字符串中的\“替换为”   Java中的html意外URL请求结果   java在拼花文件格式中INT64和十进制(18,6)意味着什么?   java如何查看PDF文件   java在向powershell中的程序传递参数时遇到问题   继承如何在不同实现/类/etc的java中调用toString()   java Count可抓获的最大窃贼数