zoukankan      html  css  js  c++  java
  • linux 下 git gem 等代理设置问题

    github.com,作为程序员的代码仓库,我们经常会用到。但有时候我们不能直接通过网络链接它,只能通过代理。

    这里我有一台代理服务器,起初我以为在终端设置了代理环境就行了,其设置为在你的~/.bashrc里增加以下几行:

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. export http_proxy="http://proxy-server:3128/"  
    2. export https_proxy="http://proxy-server:3128/"  
    3. export ftp_proxy="http://proxy-server:3128/"  


    设置好以后,使用以下命令使其启动

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. source ~/.bashrc  


    然后测试wget是没有问题的,如下:

    但使用git clone就不行

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. git clone git@github.com:aborn/ulitcs.git   

    通过这两篇文章知道了原因:在windows上通过代理访问github.com 和 Using git over proxy

    配制过程分为以下几步:

    1. 安装socat,在ubuntu下使用以下命令安装

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. sudo apt-get install socat   


    2. 编辑一个脚本文件,名字为git-proxy ,内容如下

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. #!/bin/sh  
    2. # Use socat to proxy git through an HTTP CONNECT firewall.  
    3. # Useful if you are trying to clone git:// from inside a company.  
    4. # Requires that the proxy allows CONNECT to port 9418.  
    5. #  
    6. # Save this file as gitproxy somewhere in your path  
    7. # (e.g., ~/bin) and then run  
    8. # chmod +x git-proxy  
    9. # git config --global core.gitproxy git-proxy  
    10. #  
    11. #  
    12. # Configuration. Common proxy ports are 3128, 8123, 8000.  
    13. _proxy=proxy-server  
    14. _proxyport=3128  
    15. exec socat STDIO PROXY:$_proxy:$1:$2,proxyport=$_proxyport  


    3. 将git-proxy放到一个目录下,如我将它放到/home/lisp/local/bin,并将该目录加入到PATH

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. cp git-proxy /home/lisp/local/bin/  

    将该目录加入到PATH,加入以下内容到~/.bashrc,然后souce ~/.bashrc

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. export PATH=$PATH:/home/lisp/local/bin  
    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. source ~/.bashrc  

    4. 修改~/.gitconfig,加入以下行和代理

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. gitproxy = git-proxy  

    我.gitconfig文件内容如下:

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. [push]  
    2.     default = simple  
    3. [user]  
    4.     name = aborn  
    5.     email = loveaborn@foxmail.com  
    6. [core]  
    7.     editor = emacs  
    8.     gitproxy = git-proxy  
    9. [https]  
    10.     proxy = http://proxy-server:3128  
    11. [http]  
    12.     proxy = http://proxy-server:3128  

    5. 下载转换协议文件connect.c,下载地址点击

    只要下载connect.c文件即可,然后编译

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. gcc -o connect connect.c  


    将编译后的文件connect也拷贝到/home/lisp/local/bin下

    6. 修改~/.ssh/config,加入以下行

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. ProxyCommand /home/lisp/local/bin/connect -H proxy-server:3128 %h %p   


    我的~/.ssh/config文件内容如下:

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. ProxyCommand /home/lisp/local/bin/connect -H proxy-server:3128 %h %p  
    2. Host github.com  
    3. User loveaborn@foxmail.com  
    4. Port 443  
    5. Hostname ssh.github.com  


    注意这里的connect文件目录与第5步放置的目录一致。

    以上步骤完成后,就行了,如下截图:

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. git clone git@github.com:aborn/ulitcs.git     

    [python] view plaincopy在CODE上查看代码片派生到我的代码片
     
    1. git push  


    注意:

    1. 上面的proxy-server根据你的代理,设置为替换为你的代理服务器的ip地址或者域名

    2. 上面的connect.c 文件、编译好的connect文件和git-proxy文件,也可以从这里下载connect.tar.gz 和 git-proxy

    3. 我的操作系统为Ubuntu 14.04LTS

  • 相关阅读:
    服务器(Ubuntu 12.04 LTS)上编译基于OpenCV的项目遇到的问题及解决方案
    ubuntu 16.04 LTS 降级安装gcc 4.8
    C#程序中获取电脑硬件配置信息的一种方法
    C#程序将对象保存为json文件的方法
    C#中运用事件实现异步调用
    Redis实现分布式锁 php
    CI框架整合UEditor编辑器上传功能
    PHP给图片加水印具体实现
    检测网站是否被和谐!
    vue的双向绑定和依赖收集
  • 原文地址:https://www.cnblogs.com/yudar/p/4468717.html
Copyright © 2011-2022 走看看