墙越来越厉害, 各种包管理工具该怎么办?

时至今日, 墙越来越惨无人道了, 很多语言都使用了包管理工具, 那么对于开发者来讲, 墙外的各个软件包该如何获取呢

Answers

python:

如果是使用 requirements.txt, 需要在 requirements.txt 头部加入如下内容:

-i http://pypi.douban.com/simple

如果不使用 requirements.txt, 可以使用下面的命令:

pip install -i http://pypi.douban.com/simple Flask

全局参数设置:

  • Windows 修改 %APPDATA%\pip\pip.ini
  • Linux 修改 $HOME/.config/pip/pip.conf
  • OSX 修改 $HOME/Library/Application Support/pip/pip.conf

增加如下内容:

[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

其中 http://pypi.douban.com/simple 可更换为其他可用镜像

相关文档及引用

PHP composer

执行以下命令

composer config -g repositories.packagist composer http://packagist.phpcomposer.com

查看 composer 当前配置项

composer config -l -g

相关文档及引用

RubyGems

添加镜像地址

gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

输出:

*** CURRENT SOURCES ***

https://ruby.taobao.org

请确保只有 ruby.taobao.org

如果你是用 Bundle (Rails 项目)

编辑 Gemfile:

source 'https://ruby.taobao.org/'

RVM

修改 RVM:

OSX:

sed -i .bak 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db

linux:

sed -i 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db

相关文档及引用

npm

使用

使用定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

npm install -g cnpm --registry=https://registry.npm.taobao.org

或者你直接通过添加 npm 参数 alias 一个新命令:

alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"

# Or alias it in .bashrc or .zshrc
echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \
  --cache=$HOME/.npm/.cache/cnpm \
  --disturl=https://npm.taobao.org/dist \
  --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

安装模块

cnpm install [name]

相关文档及引用

golang gopm

使用可见 https://github.com/gpmgo/docs/blob/master/zh-CN/Quickstart.md

相关文档及引用

docker

使用

--registry-mirror=https://docker.mirrors.ustc.edu.cn 加入 docker deamon 的启动参数, 然后重启 daemon 即可, 如:

rhel/centos 7
sudo sed -i 's|other_args="|other_args="--registry-mirror=https://docker.mirrors.ustc.edu.cn |g' /etc/sysconfig/docker
sudo sed -i "s|OPTIONS='|OPTIONS='--registry-mirror=https://docker.mirrors.ustc.edu.cn |g" /etc/sysconfig/docker
sudo sed -i 'N;s|\[Service\]\n|\[Service\]\nEnvironmentFile=-/etc/sysconfig/docker\n|g' /usr/lib/systemd/system/docker.service
sudo sed -i 's|fd://|fd:// $other_args |g' /usr/lib/systemd/system/docker.service
rhel/centos 6
sudo sed -i "s|other_args=\"|other_args=\"--registry-mirror=https://docker.mirrors.ustc.edu.cn |g" /etc/sysconfig/docker
# or
sudo sed -i "s|OPTIONS='|OPTIONS='--registry-mirror=https://docker.mirrors.ustc.edu.cn |g" /etc/sysconfig/docker

相关文档及引用

  • https://servers.blog.ustc.edu.cn/2015/05/new-docker-hub-registry-mirror/