前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iMac(OS X)日常开发中各种代理设置方法汇总(shell、Android Studio、gem、npm)

iMac(OS X)日常开发中各种代理设置方法汇总(shell、Android Studio、gem、npm)

作者头像
子勰
发布于 2018-05-22 07:21:07
发布于 2018-05-22 07:21:07
1.4K00
代码可运行
举报
文章被收录于专栏:子勰随笔子勰随笔
运行总次数:0
代码可运行

写在前面

由于各种各样的墙的原因,导致日常开发中我们会遇到各种各样的因为网络的问题导致的不能访问、超时等问题。每次遇到都会去查一遍,很是费时,今天专门总结汇总一下。由于考虑到需要不停的切断是否使用,因此这里不再介绍设备全局代理的设置方式。

对于mac环境,我们大部分时间都是使用命令行,因此代理配置相关的主要就是关于shell的代理配置。很奇怪shell命令行下配置的代理仅仅对shell相关的部分命令(例如wget等)生效,不是对整个机器生效(例如npm等还是要使用专门的代理)。当然也有可能由于公司网络异常复杂,因此会有各种代理配置,是别的代理配置的问题,引起代理在部分命令下没有生效。不管是什么原因,这里都总结一下相关命令的代理配置。

shell下的代理配置

配置方法

shell的网络代理有两种方法,一种是直接通过命令行配置,一种是直接设置在配置文件,在终端启动时自动加载。两种方法都是使用export设置环境变量的方式来实现,方法一致:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 配置生效
export http_proxy='http://proxy.com:8080';
export https_proxy='http://proxy.com:8080';
	
# 删除配置
export http_proxy='';
export https_proxy='';
命令行配置事例

通过命令行可以完成网络代理的切换,包括代理添加、删除代理以及修改代理。具体事例如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 添加
➜  temp export http_proxy='http://proxy.com:8080';
➜  temp export https_proxy='http://proxy.com:8080';
# 查看
➜  temp echo $http_proxy $https_proxy
http://proxy.com:8080 http://proxy.com:8080
# 修改
➜  temp export https_proxy='http://test-proxy.com:8080';
# 查看
➜  temp echo $http_proxy $https_proxy
http://dev-proxy.oa.com:8080 http://test-proxy.com:8080
# 删除
➜  temp export http_proxy='';
➜  temp echo $http_proxy $https_proxy
http://dev-proxy.oa.com:8080
➜  temp export https_proxy='';
➜  temp echo $http_proxy $https_proxy

➜  temp
shell环境变量配置事例

如果是在环境变量中设置对应的参数,一般都是默认添加代理,然后当需要取消代理的时候再通过命令行使配置不生效。之所以已经有命令行的情况下还提供环境变量的设置是因为环境变量的配置会在每次shell终端启动时自动加载,因此不需要每次配置。目前个人使用的shell为zsh,因此以zsh的配置来说明。打开zsh的配置文件(默认为~/.zshrc),然后添加上面的代理配置即可,事例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp tail ~/.zshrc
export FixVersion=0
export BuildNo=11
export SVN_REVISION=100
export oldSDKTag=Tag_YSDK_1.3.1.45_635
export isPatch=false
export isRelease=false

export https_proxy='http://proxy.com:8080';
export http_proxy='http://proxy.com:8080';

Android Studio 下的代理配置

Android开发中我们会用到两种模式,一种是直接IDE编译运行,一种是直接在命令行运行,两种场景下的代理配置并不一致。其中在命令行下运行时的代理配置与shell下的一致,因此不再专门介绍,仅仅介绍IDE的环境变量配置。

Android studio提供了IDE全局的环境变量的配置模式,就在 Appearance & Behavior > System Settings > HTTP Proxy 中,由于这个配置是全局的,因此开发中并不是很方便,主要表现在:

  • 不同的项目可能不一定需要配置代理,或者需要的代理并不一致
  • 如果项目有多个开发者,每个开发者都需要配置一次

因此个人更多的都是直接修改项目相关的配置文件来设置项目相关的代理。具体的就是在项目的根目录的gradle.properties中添加如下的配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemProp.http.proxyHost='proxy.com'
systemProp.http.proxyPort='8080'
# 过滤不使用代理的域名
systemProp.http.nonProxyHosts=*.bihe0832.com
systemProp.https.proxyHost='proxy.com'
systemProp.https.proxyPort='8080'
# 过滤不使用代理的域名
systemProp.https.nonProxyHosts=*.bihe0832.com

这里需要注意的是,很多android的maven依赖都是使用https的,因此不要仅仅配置http相关的代理,需要同时配置https的

gem 代理设置

正如前面提到的,在某些情况下会出现shell配置了代理,但是并没有生效的情况。例如gem,这里介绍一下gem设置代理的方法,比如我们安装github-pages。

代理设置

如果在安装时需要代理,只需要在命令参数中加上 --http-proxy 参数,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  gem install --http-proxy http://proxy.com:8080 github-pages

如果在安装时不需要代理,只需要在命令参数中去除 --http-proxy 参数,例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  gem install github-pages
修改镜像

除了通过配置代理来访问资源外,我们还可以通过直接修改gem的镜像源地址。这样即使不用代理也可访问。gem源的修改方法如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  gem source --add <new registry url>  --remove  <new registry url>

具体示例如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
➜  temp  gem sources -l
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/universal-darwin17/rbconfig.rb:214: warning: Insecure world writable dir /Users/hardyshi/lib/android-sdk in PATH, mode 040777
*** CURRENT SOURCES ***

https://gems.ruby-china.org

如果修改镜像,建议只保留一个即可,其余的都删除,然后根据剩余的镜像确定是否使用代理,这样会大大提升效率

本地安装

当然,gem除了设置代理或者直接修改镜像以外, 还可以直接本地安装,比如我们要安装 github-pages, 先到 https://gems.ruby-china.org 或者其余镜像源把 github-pages 下载到本地, 然后在本地安装:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  gem install --local ~/temp/github-pages-localname.gem

npm 代理设置

npm和gem一样,也有两种方法,切换镜像或者设置代理,这里逐个介绍一下:

代理设置

如果在安装时需要代理,只需安装前配置中设置代理,安装后再删除即可。例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  npm config set proxy=http://proxy.com:8080
➜  temp  npm install --global vue-cli

如果在安装后如果不需要代理,只需要配置中删除代理即可:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
➜  temp  npm config delete proxy
修改镜像
  • 修改指定路径 除了通过配置代理来访问资源外,npm也可以修改镜像源地址。修改方法如下: ➜ temp npm config set registry < new registry url > 具体示例如下: ➜ temp npm config set registry https://registry.npm.taobao.org
  • 择优修改路径 当然你也可以选择官方提供的工具来选择最优路径: 首先安装npm registry的管理工具nrm: ➜ temp npm install -g nrm npm WARN deprecated coffee-script@1.7.1: CoffeeScript on NPM has moved to "coffeescript" (no hyphen) /usr/local/bin/nrm -> /usr/local/lib/node_modules/nrm/cli.js /usr/local/lib └── nrm@1.0.2 只有就可以使用nrm来查看有哪些镜像: ➜ temp nrm ls * npm ---- https://registry.npmjs.org/ cnpm --- http://r.cnpmjs.org/ taobao - https://registry.npm.taobao.org/ nj ----- https://registry.nodejitsu.com/ rednpm - http://registry.mirror.cqupt.edu.cn/ npmMirror https://skimdb.npmjs.com/registry/ edunpm - http://registry.enpmjs.org/ 然后使用nrm和镜像的别名就可以切换镜像的地址: ➜ temp nrm use taobao Registry has been set to: https://registry.npm.taobao.org/ 其实nrm还给我们提供了测速工具来测试当前网络到所有镜像地址的访问耗时,我们可以结合测速结果选择更优的镜像地址: ➜ temp nrm test npm ---- 403ms cnpm --- 219ms * taobao - 350ms nj ----- Fetch Error rednpm - 115ms npmMirror 1169ms edunpm - 220ms
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年03月30日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
设置 git/npm/bower/pip/gem镜像或代理
有时候因为墙或者速度的原因使用git/npm/bower/pip/gem等工具的时候需要设置镜像或者代理,记录一下,不用到处找。 git 设置: $ git config --global http.proxy http://proxy.mysite.com 取消: $ git config --global --unset http.proxy npm 设置代理: $ npm config set proxy=http://proxy.mysite.com 取消代理: $ npm confi
Bob.Chen
2018/05/02
3.1K0
react-native环境搭建的正确姿势
上个月Facebook开源了Android版的react-native,react-native为何物就不多介绍,个人认为虽然取代不了native,但是确实有可能是移动端的未来。
weishu
2018/09/05
8990
Docker 拉取镜像失败处理
如果母机的网络环境是需要配置代理才能够访问互联网的话,那安装docker后,去拉取镜像大概率会失败。 类似如下的错误:
艳龙
2021/12/16
11.2K0
Docker 拉取镜像失败处理
npm包与gem包--在线&离线安装
NPM,即为Node的包管理工具,官网为 https://www.npmjs.com/,我们可以在站内搜索所需要的NPM包,了解相关的使用规则
书童小二
2018/09/03
4.2K0
npm包与gem包--在线&离线安装
DOCKER网络代理设置
  在一些实验室环境,服务器没有直接连接外网的权限,需要通过网络代理。我们通常会将网络代理直接配置在/etc/environment、/etc/profile之类的配置文件中,这对于大部分操作都是可行的。然而,docker命令却使用不了这些代理。比如docker pull时需要从外网下载镜像,就会出现如下错误:
孙杰
2019/10/29
3.5K0
linux代理设置
有些局域网环境上网需要使用代理上网,图形界面的很好解决就设置一下浏览器的代理就好了,但是Linux纯命令行的界面就需要手动配置了。
孙杰
2019/10/29
9.1K0
为npm设置代理
npm全称为Node Packaged Modules。它是一个用于管理基于node.js编写的package的命令行工具。其本身就是基于node.js写的,这有点像gem与ruby的关系。
墨文
2020/02/28
23.3K0
【Node.js】:配置源(registry)、代理(proxy)
换npm、yarn的镜像源,或配置npm、yarn的代理,都是为了解决 npm 依赖下载慢的问题。
WEBJ2EE
2021/01/28
15.8K0
【Node.js】:配置源(registry)、代理(proxy)
iMac上RubyGems相关的问题汇总
原因就是字面意思的原因, gem 要往目录/usr/bin写文件但是权限不够. 因为此时使用的是系统自带的 ruby, 他会在尝试往系统库中安装内容。有时候即使是使用sudo或许也不可以安装。解决这个问题有两种方法:
子勰
2018/10/09
9970
命令终端设置全局代理的两种方法
我们在日常测试中经常要用到git克隆项目、pip安装依赖库等,如果不走代理可能连接不上,或者下载速度极慢,这是我没法忍受的,所以要走代理才能高速下载。
潇湘信安
2023/08/11
3.6K1
命令终端设置全局代理的两种方法
那些你用得上的镜像网站
国外的某些网站经常打不开或很慢,于是就有了做代理的镜像网站,推荐几个常用的镜像网站,你可能用得上。
苏生不惑
2019/12/19
10.9K0
那些你用得上的镜像网站
【Go】go get 自动代理
最近发现技术交流群里很多人在询问 go get 墙外包失败的问题,大家给了很多解决方案:
thinkeridea
2019/11/04
1.8K0
Shell curl 和 wget 使用代理IP
Linux Shell 提供两个非常实用的命令来爬取网页,它们分别是 curl 和 wget
阳光岛主
2019/02/18
1.4K0
Shell curl 和 wget 使用代理IP
npm 更改为淘宝镜像的方法[通俗易懂]
3、通过npm配置文件直接修改,本质和第2条一样,配置文件位置(windows环境)为C盘下的.npmrc文件(百度很容易查到文件路径),MAC没试过。可以用如下命令找到配置文件位置
全栈程序员站长
2022/07/31
12.6K0
npm 更改为淘宝镜像的方法[通俗易懂]
ZSH 自动读取 macOS 系统代理配置并设置环境变量
和其它 Linux 的 DE 一样,macOS 也支持在“系统偏好设置”中设置 HTTP 代理、HTTPS 代理,但是 macOS 并不会在终端(Terminal、iTerm)的 shell 中自动生效系统代理配置。为了方便日常使用,我决定好好研究一下 macOS 的系统代理。
米开朗基杨
2020/12/14
2.2K0
ZSH 自动读取 macOS 系统代理配置并设置环境变量
配置全新✨或重装后💀的 Macbook 不完全指南(前端向)
俗话说,工欲善其事,必先利其器。当你拿到一台新的 Macbook,或者是不小心弄崩了老的 Macbook 需要重装系统 😭😭😭,那怎样快速配置好一台新 Macbook 呢?说实话,从头开始配置环境是比较花时间的,因为中间可能会有不少的坑。这篇文章总结了我自己因升级系统弄崩若干次 Macbook 的配置经验,希望能给大家避坑,也是怕我下次手抖点升级系统再次弄崩 Macbook 时,能快速把机器配置到好用的状态开始干活搬砖🧱。 First Of All, 备份重要数据和及时 push 代码非常非常重要。
玖柒的小窝
2021/10/26
2.1K0
配置全新✨或重装后💀的 Macbook 不完全指南(前端向)
【开发指南】(一)Ionic3开发环境配置常规ionic的环境搭建如下:
工欲善其事,必先利其器,搭好环境是开发的前提,有时环境没弄好,不时报错往往很扎心。
IT晴天
2018/08/20
2K0
容器开发运维人员的Linux操作机配置优化建议
"工欲善其事必先利其器", 作为一个PAAS平台架构师, 容器相关技术(docker, k8s等)是必不可少的. 本文简单介绍下我自己的Linux操作机配置. 提升工作效率, 提高使用体验. ❤️❤️❤️
东风微鸣
2022/04/21
5100
容器开发运维人员的Linux操作机配置优化建议
第210天:node、nvm、npm和gulp的安装和使用详解
它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行JS代码。JS由ES(ECMAScript),DOM,BOM 组成,目前运行在浏览器内核中,NODE中只能运行ECMAScript,无法使用DOM,BOM。
半指温柔乐
2018/09/11
2.5K0
设置npm源的几种方式
设置npm源的几种方式 原始源 # the original source https://registry.npmjs.org/ 方案: 使用nrm 安装 npm install -g nrm 列出源的候选项 nrm ls 输出结果: * npm -------- https://registry.npmjs.org/ yarn ------- https://registry.yarnpkg.com/ cnpm ------- http://r.cnpmjs.org/ taobao ----
绿巨人
2020/02/21
10K0
相关推荐
设置 git/npm/bower/pip/gem镜像或代理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验