MacOS下如何用交互模式安装依赖

  

MacOS下如何用交互模式安装依赖?相信大部分人都还没学会这个技能,为了让大家学会,给大家总结了以下内容,话不多说,一起往下看吧。

依赖工具

    <李>码头工人李 <李>有趣

有趣和Fcli工具依赖于码头工人来模拟本地环境。

对于MacOS用户可以使用家酿进行安装:

 <代码类=" language-bash ">酿酒桶安装码头工人
  啤酒龙头vangie/公式
  酿造安装有趣 

Windows和Linux用户安装请参考:& lt; https://github.com/aliyun/fun/blob/master/docs/usage/installation.md>

安装好后,记得先执行<代码>有趣配置初始化一下配置。

<强>注意强,如果你已经安装过了有趣,确保有趣的版本在3.0.0-beta。1以上。

 <代码类=" language-bash ">有趣——美元版本
  3.0.0-beta。1  

背景

函数计算以Zip压缩文件格式作为约定的交付物,交付物通常包含代码和依赖库文件。这些依赖库文件通常分为系统依赖(使用apt-get包管理安装的库)和语言运行时依赖(使用语言相关的包管理器如npm, pip安装的库)。

系统依赖通常不可移植

通常情况下系统依赖和环境相关,比如我们希望在函数里调用brotli命令解压文件,如果我们在开发机mac上,使用<代码>酿造安装brotli>

语言依赖也存在不可移植的情况

通常情况下语言依赖是平台无关的,比如说使用<代码> npm安装jszip 安装一个nodejs依赖,该依赖可以运行在不同的操作系统和不同的nodejs版本下。语言平台上的依赖通常是可移植的,单也有例外的情况。如:<代码> npm安装node-pty>

DSL脚本的不足有趣

2.0版本支持依赖安装DSL文件fun.yml,有趣。yml为依赖安装提供了批量模式。日常开发提供了一种命令模式,如:<代码>有趣的安装,包装类型pip tensorflow>

但是无论是有趣的。yml或Funfile,以及命令模式,对于开发者都有一个痛点。那就是不知道环境里当前的状态:

    <李>已经安装的软件有哪些 <李>某个目录下有些什么文件 <李>文件的内容以及属性是什么李

开发者需要可以交互的沙箱环境。该功能在有趣的2.0中没有,用户常常使用<代码> fcli sbox 命令作为替代,或者直接使用fc-docker项目提供的镜像启动一个容器。<代码>码头工人运行——rm - - v (pwd):美元/代码aliyunfc/runtime-python2.7:构建bash 但是这些复杂的命令和参数需要用户具备足够的码头工人背景知识以及对函数计算工作原理的了解。

为了更好的解决上述问题,提升用户的开发体验,我们在玩3.0中提供了<代码>有趣安装sbox 子命令。 MacOS下如何用交互模式安装依赖

命令行参数

 <代码类=" language-bash ">有趣的安装sbox——帮助美元
  用法:有趣的安装sbox [- f |——功能& lt;[服务/]function>] [- r |——运行时& lt; runtime>] [i |——互动][- e | - env关键=val……][- e | - cmd & lt; cmd>]
  
  启动本地沙箱安装或配置的依赖关系
  
  选项:
  ,- f,功能& lt;[服务/]function>指定哪个函数来执行安装任务。
  ,- r,运行时& lt; runtime>,,,,,,,函数运行时,勾选选择是:nodejs6, nodejs8, nodejs10, python2.7, python3 java8 php7.2,定制
  ,我,互动,,,,,,,,,作为交互模式运行。保持STDIN开放和分配一个pseudo-TTY在交互式shell。(默认值:false)
  ,- e, env & lt; env>,,,,,,,,,,环境变量,前女友。- e路径=/代码/bin(默认值:[])
  ,- c, cmd & lt; cmd>,,,,,,,,,,,命令与参数来执行安装盒内。
  ,- h,帮助,,,,,,,,,,,,,输出使用信息 

快速开始

下面以项目pyzbar_example为例,pyzbar_example项目包含如下文件

 <代码类=" language-bash ">,美元树。
  .
  ├──fun.yml
  ├──index.py
  ├──qrcode.png
  └──template.yml
  
  0目录,4文件

MacOS下如何用交互模式安装依赖