友人C

常用的包管理工具的简单使用
brew(homebrew)brew 是macOS系统的包管理软件。Homebrew是以最简单,最灵活的方式来安装...
扫描右侧二维码阅读全文
18
2019/04

常用的包管理工具的简单使用

brew(homebrew)

brew 是macOS系统的包管理软件。Homebrew是以最简单,最灵活的方式来安装苹果公司在MacOS中不包含的UNIX工具。

homebrew基于Git仓库管理的。

可以分为五个库:

  • 软件本身代码库 brew.git
  • Formula

    • 核心软件库 brew-core.git
    • 第三方软件包库 taps
    • 预编译软件包库 Bottles
  • 含界面的软件仓库 cask

cask

官方的软件包,这里的软件是指的是带界面的软件,如AtomQQFirefox等等。

Formula

中文可翻译“配方、公式”,我理解就是二进制包。也就是不含界面的库、包
通过breww install <Formula> 安装。

下面的tapsBoottles 都是许多Formula的集合而已。区别是Bottles特指已经预先编译好的包,而taps则是泛指所有包的集合。

taps

我们常用到的软件包都在brew-core.git库中,不常用的包是单独出来的,这些包被称为taps

注释:虽然官方描述是third-party repositories(第三方仓库),但是官方的core包也是在taps目录下,所以可以把tap理解为一些相关的功能包集合。taps就是多个这样集合的集合。

homebrew 官方提供一些功能包:

homebrew/nginx    //包含 nginx 相关模块的仓库
homebrew/php       // php 相关模块的仓库
homebrew/science  // 科学计算工具仓库

可以通过brew tap [功能仓库名]加载,如:

brew tap homebrew/nginx

第三方的仓库只 要符合homebrew规范也可以加载。

通过brew tap(没有s)命令可以看到当前机器加载的软件包库。(core核心包也是在taps文件夹下的

Bottles

bottles是指已经编译好的二进制包(可以直接执行的)。如果一个软件包含预编译的 Bottle, 我们在使用 brew install 的时候会优先下载预编译的包。

你可以在brew install后加上 --build-from-source 选项表示使用下载源代码本地编译的方式:

brew install --build-from-source node

更换以及重置源地址

更换

# 1.替换brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git/

# 2.替换homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git/

# 3.替换homebrew-bottles:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles/' >> ~/.zshrc
source ~/.zshrc

# 4. 替换homebrew-cask
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
第三步中,使用的是zsh终端,所以环境变量配置文件是~/.zshrc,如果是bash终端,配置文件是~/.bash_profile
第四步非常重要,brew update 会到homebrew-cask,执行git pull 的,所以一定要替换该仓库的镜像源,否则brew update 还是很慢。

重置

# 1. 重置brew.git:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git

# 2. 重置homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git


# 3.重置homebrew-bottles:
## 打开配置文件~/.zshrc,删掉HOMEBREW_BOTTLE_DOMAIN变量即可
source ~/.zshrc

# 4. 重置homebrew-cask
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask
git remote set-url origin https://github.com/Homebrew/homebrew-cask.git

macOS 包管理工具 Homebrew 不完全指南
MacOS(OS X)安装与配置 Homebrew
配置brew为阿里源
Homebrew Cask 源使用帮助

常用操作

#安装软件
brew install oclint

#卸载软件
brew uninstall oclint

#搜索软件
brew search oclint

#更新软件
brew upgrade oclint

#查看安装列表
brew list

#更新Homebrew
brew update

apt、yum、dnf、pkg

详解apt、yum、dnf 和 pkg

pip

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

安装pip

一般情况 pip 对应的是 Python 2.7,pip3 对应的是 Python 3.x。

# 下载安装脚本
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 

# 安装pip
sudo python get-pip.py    # 运行安装脚本

# 安装pip3
sudo python3 get-pip.py    # 运行安装脚本

常用操作

# 查看版本
pip --version

# 升级
sudo pip install -U pip

# 更换源地址(使用阿里云)
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/
## 临时使用某个镜像源安装
pip install -i https://mirrors.aliyun.com/pypi/simple/

# 搜索包
pip search [包名,支持正则表达式]

# 安装包
pip install [包名]              # 最新版本
pip install [包名]==1.0.4       # 指定版本
pip install '[包名]>=1.0.4'     # 最小版本

# 升级包
pip install --upgrade [包名]              # 最新版本
pip install --upgrade [包名]==1.0.4       # 指定版本
pip install --upgrade [包名]>=1.0.4   # 最小版本

# 卸载包
pip uninstall [包名]

# 查看某个包的信息
pip show [包名]

# 查看本机安装的所有包
pip list
## 查看可升级的包
pip list -o

npm、yarn

npm和yarn的区别,我们该如何选择?

常用操作

# 安装项目需要的库
npm install === yarn 

# 添加一个库(并添加到当前项目依赖中)
npm install taco --save === yarn add taco

# 移除一个库
npm uninstall taco --save === yarn remove taco

# 为开发环境添加一个库(并添加到当前项目开发环境的依赖中)
npm install taco --save-dev === yarn add taco --dev

# 升级自身
npm update --save === yarn upgrade

maven

两个关键文件pom.xml.properties

  • pom.xml:项目所有依赖的包的信息。
  • .properties:maven的一些配置参数

通用命令

# 查看版本
--version,-v

# 升级自身
update

# 升级某个软件
upgrade
最后修改:2019 年 04 月 18 日 09 : 13 PM
如果觉得我的文章对你有用,请随意赞赏

2 条评论

  1. 心语难诉

    看来博主是走全栈路线了。

    1. 友人C
      @心语难诉

      不是啦,想多了解一些,这些工具也是平时常用用的

发表评论