Homebrew、gem、npm、yarn、bundle
Homebrew、gem、npm、yarn、bundle
Homebrew - macOS 系统中管理软件与环境的命令行工具
打开终端执行 Homebrew 的指令,便可以轻松安装 Python,Node.js,Java,MySQL 等执行环境,安装 Chrome,WeChat 等海量的应用程序,接纳 Postman,VSCode 等开源社区的优秀产品。基本上所有东西都可以用 brew 来安装。
- Homebrew 的简历说明
Homebrew 是适用于 macOS「或 Linux」的包管理器。简单理解:包「Package」,除操作系统外的程序文件的集合,应用程序如 Chrome 可以称为包,编译器与执行环境如 Python 可以称为包,字体文件如 FiraCode 可以称为包。Homebrew 本身也是一个包,用于管理操作系统所安装的包,是通过终端操作的应用商店。
了解这些基本概念,相比从应用商店或各类网站下载安装应用程序、从 Github 下载编译安装开源产品、在命令行直接执行安装指令,使用 Homebrew 有这些优势:
-
brew install安装各类环境、库、编译器等。
-
brew cask install安装 macOS 应用,字体和插件以及其他非开源软件。
-
brew upgrade与brew cask upgrade承包了所有包的「一键更新」。
对于高阶用户,Homebrew 还有这些优势:
-
包将安装到 Homebrew 自己的目录,然后将其文件符号链接到/usr/local。
-
Homebrew 不会在其前缀之外安装文件,可以在任意位置放置 Homebrew 的根目录。
-
使用 Git 和 Ruby 为操作单元,可以轻松还原所做的修改并合并上游更新。 轻松创建、发布自己的 Homebrew 软件包。
终端安装 Homebrew:
与一般的应用程序安装过程不同,Homebrew 不存在安装包,需要通过终端指令进行安装(或可以下载源码,自行编译安装)。安装流程见官网,只需要保持互联网连接,打开终端,将一句指令复制粘贴,回车键,便开始了安装过程。由于指令可能存在变动,这里不直接给出,建议打开官网查看
Homebrew 指令使用
这就是一个使用终端交互的应用商店。正常安装一个应用程序,先搜索,找到名称点击安装,安装完成。之后便是检查当前安装的应用列表,更新应用、删除应用。这些操作都对应了各自的指令,并拥有自己的表达式规则。简单理解:指令,终端键入的一句话,代表了一段执行的程序,翻译后由对应的包进行指令执行,完成所代指的功能。
Example usage:
brew search [TEXT|/REGEX/] # 搜索软件包
brew info [FORMULA...] # 查看某个软件包的信息
brew install FORMULA... # 安装软件包的指令
brew update # 更新Homebrew自己
brew upgrade [FORMULA...] # 更新软件包的指令
brew uninstall FORMULA... # 卸载软件包的指令
brew list [FORMULA...] # 查看当前安装的软件包
Troubleshooting:
brew config # 查看Homebrew的配置
brew doctor # 做个体检
brew install --verbose --debug FORMULA # 安装失败时使用这条指令重新安装,查看错误信息
Contributing:
brew create [URL [--no-fetch]] # 高阶用法
brew edit [FORMULA...] # 高阶用法
Further help:
brew commands # 查看所有指令
brew help [COMMAND] # 查看具体某条指令的帮助
man brew # Homebrew的manual
Gem gem,rvm,bundle
手工装各种ruby库用gem,rvm是装各种版本ruby的,是个ruby版本管理器,bundle是rails框架里面安装Gemfile指定的各种库的工具。 gem和bundle是装的同样的东西,rvm是装ruby。
NPM是随同NodeJS一起安装的包管理工具
能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
-
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
-
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
-
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
npm 由三个独立的部分组成:
- 网站
网站 是开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。
- 注册表(registry)
注册表 是一个巨大的数据库,保存了每个包(package)的信息。
- 命令行工具 (CLI)
CLI 通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。
yarn简介:
yarn是facebook发布的一款取代npm的包管理工具。
yarn的特点:
- 速度超快。
- Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
- 超级安全。
- 在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。
- 超级可靠。
- 使用详细、简洁的锁文件格式和明确的安装算法,Yarn 能够保证在不同系统上无差异的工作。
yarn安装:
macos下安装
brew install yarn
下载node.js,使用npm安装
npm install -g yarn
yarn --version
Yarn 淘宝源安装,分别复制粘贴以下代码行到黑窗口运行即可
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
yarn常用命令:
安装yarn
npm install -g yarn
安装成功后,查看版本号:
yarn --version
全局安装包
yarn golbal add <package>
创建文件项目
创建文件夹 yarn
md yarn
进入yarn文件夹
cd yarn
初始化项目
yarn init // 同npm init,执行输入信息后,会生成package.json文件
yarn的配置项:
yarn config list// 显示所有配置项
yarn config get <key>//显示某配置项
yarn config delete <key> //删除某配置项
yarn config set <key> <value> [-g|--global] //设置配置项
yarn global list //获取yarn安装包列表
安装包:
yarn install //安装package.json里所有包,并将包及它的所有依赖项保存进yarn.lock
yarn install --flat //安装一个包的单一版本
yarn install --force //强制重新下载所有包
yarn install --production //只安装dependencies里的包
yarn install --no-lockfile//不读取或生成yarn.lock
yarn install --pure-lockfile //不生成yarn.lock
添加包(会更新package.json和yarn.lock):
yarn add [package]// 在当前的项目中添加一个依赖包,会自动更新到package.json和yarn.lock文件中
yarn add [package]@[version] // 安装指定版本,这里指的是主要版本,如果需要精确到小版本,使用-E参数
yarn add [package]@[tag] // 安装某个tag(比如beta,next或者latest)
//不指定依赖类型默认安装到dependencies里,你也可以指定依赖类型:
yarn add --dev/-D// 加到 devDependencies
yarn add --peer/-P // 加到 peerDependencies
yarn add --optional/-O // 加到 optionalDependencies
//默认安装包的主要版本里的最新版本,下面两个命令可以指定版本:
yarn add --exact/-E// 安装包的精确版本。例如yarn add foo@1.2.3会接受1.9.1版,但是yarn add foo@1.2.3 --exact只会接受1.2.3版
yarn add --tilde/-T// 安装包的次要版本里的最新版。例如yarn add foo@1.2.3 --tilde会接受1.2.9,但不接受1.3.0
发布包
yarn publish
移除一个包
yarn remove <packageName>:移除一个包,会自动更新package.json和yarn.lock
更新一个依赖
yarn upgrade用于更新包到基于规范范围的最新版本
运行脚本
yarn run 用来执行在 package.json 中 scripts 属性下定义的脚本
显示某个包的信息
yarn info <packageName> 可以用来查看某个模块的最新版本信息
缓存
yarn cache
yarn cache list # 列出已缓存的每个包
yarn cache dir # 返回 全局缓存位置
yarn cache clean # 清除缓存
yarn和npm比较