프록시 뒤에서 Ruby Gems를 업데이트하는 방법 (ISA-NTLM)
내가 가지고있는 방화벽은 NTLM 전용 모드에서 Microsoft ISA 서버를 실행하고 있습니다. 누구든지 Ruby SSPI gem 또는 다른 방법을 통해 Ruby gem을 설치 / 업데이트하는 데 성공 했습니까?
... 아니면 게으른가요?
참고 : rubysspi-1.2.4는 작동하지 않습니다.
IronRuby 프로젝트의 일부인 "igem"에서도 작동합니다.
커맨드 라인 스위치에서 작업을 수행 할 수 없었지만 HTTP_PROXY
환경 변수 를 설정하여 수행 할 수있었습니다 . (사례가 중요한 것 같습니다). 다음과 같은 줄이있는 배치 파일이 있습니다.
SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%
이 줄에 분명히 도달하기 전에 4 개의 참조 변수를 설정했습니다. 예를 들어 사용자 이름이 "wolfbyte"인 경우 암호는 "secret"이고 프록시는 "pigsy"이며 포트 8080에서 작동합니다.
SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080
컴퓨터 세션에서 암호를 일반 텍스트로 저장하기 때문에 관리 방법에주의를 기울이고 싶지만 너무 큰 문제는 아닙니다.
Windows OS의 경우 Fiddler를 사용하여 문제를 해결했습니다.
- www.fiddler2.com에서 Fiddler 설치 / 실행
보석을 실행 :
$ gem install --http-proxy http://localhost:8888 $gem_name
이것은 완전히 작동했습니다.
gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name
나는 직장에서 cntlm ( http://cntlm.sourceforge.net/ )을 사용하고 있습니다. 구성은 ntlmap과 매우 유사합니다.
- gem 설치 --http-proxy http : // localhost : 3128 _name_of_gem_
잘 작동하며 Ubuntu 상자를 ISA 프록시에 연결할 수도 있습니다.
자세한 내용은 http://cntlm.wiki.sourceforge.net/ 을 확인 하십시오.
나는이 해결책 중 일부를 시도했지만 그중 아무것도 효과가 없었습니다. 마침내 나에게 맞는 솔루션을 찾았습니다.
gem install -p http://proxy_ip:proxy_port rails
-p
매개 변수를 사용하여 프록시를 전달합니다. Gem 버전 1.9.1을 사용하고 있습니다.
이것은 내 문제를 완벽하게 해결했습니다.
gem install -p http://proxy_ip:proxy_port compass
사용자 이름과 비밀번호를 추가해야 할 수도 있습니다.
gem install -p http://[username]:[password]@proxy_ip:proxy_port compass
다음을 포함하는 .gemrc 파일 (/ etc / gemrc 또는 ~ / .gemrc 또는 예를 들어 / opt / chef / embedded / etc / gemrc에 chef gem을 사용하여)을 작성하십시오.
http_proxy: http://proxy:3128
그러면 gem install
평소처럼 할 수 있습니다 .
프록시를 통해 인증하는 데 문제가있는 경우 환경 변수를 아래 형식으로 정확하게 설정하십시오.
set HTTP_PROXY=some.proxy.com
set HTTP_PROXY_USER=user
set HTTP_PROXY_PASS=password
user:password@
구문은 작동하지 않고 스택 오버플로 다양한 포럼 게시물에 주위에 떠있는 일부 심하게라는 이름의 환경 변수가 있습니다.
또한 보석이 다운로드되기까지 시간이 걸릴 수 있습니다. 처음에는 작동하지 않는다고 생각했지만 약간의 인내심으로 예상대로 다운로드를 시작했습니다.
위의 모든 솔루션을 시도했지만 그중 아무것도 작동하지 않았습니다. Linux / macOS를 사용하는 경우 ssh 터널에서 tsock을 사용하는 것이 좋습니다. 이 설정을 작동시키기 위해 필요한 것은 ssh를 통해 로그인 할 수 있고 tsocks라는 프로그램이 설치된 시스템입니다.
여기서 아이디어는 SSH (socks5 프록시)를 통해 동적 터널을 만드는 것입니다. 그런 다음이 터널을 사용하고이 경우 응용 프로그램을 시작하도록 tsock을 구성합니다.
tsocks gem install ...
레일 3.0을 설명하기 위해 :
tsocks bundle install
자세한 지침은 다음에서 찾을 수 있습니다.
http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu/
Ubuntu 용으로 작성되었지만이 절차는 모든 Unix 기반 컴퓨터에 적용 할 수 있어야합니다. Windows 용 tsock에 대한 대안은 FreeCap ( http://www.freecap.ru/eng/ )입니다. Windows에서 실행 가능한 SSH 클라이언트를 퍼티라고합니다.
이 주제에 관한 게시물이 많으며 다른 사람들이 다른 솔루션을 시도하는 데 드는 시간을 절약 할 수 있도록 다음은 내 시간을 땜질 한 최종 결과입니다.
현재 인터넷을 둘러싼 세 가지 솔루션은 다음과 같습니다. rubysspi apserver cntlm
rubysspi는 Win32Api 라이브러리에 의존하므로 Windows 시스템 AFAIK에서만 작동합니다. 따라서 프록시를 통해 실행하려는 Windows 상자에 있다면 이것이 솔루션입니다. Linux 배포판을 사용하는 경우 운이 좋지 않습니다.
apserver는 죽은 프로젝트 인 것 같습니다. 내가 본 게시물에 나열된 링크는 sourceforge의 404 페이지로 연결됩니다. sourceforge에서 "apserver"를 검색하면 아무것도 반환되지 않습니다.
내가 본 cntlm의 sourceforge 링크는 http://cntlm.awk.cz/로 리디렉션 되지만 시간이 초과됩니다. sourceforge를 검색하면 다음 링크가 작동합니다. http://sourceforge.net/projects/cntlm/
cntlm을 다운로드하고 구성 한 후 프록시를 통해 gem을 설치 했으므로 Linux 배포판에 가장 적합한 솔루션 인 것 같습니다.
해결 방법은 로컬 컴퓨터에 http://apserver.sourceforge.net 을 설치 하고이 프록시를 통해 gem을 실행하는 것입니다.
- 설치 : apserver 097 (실험용 098이 아님)을 다운로드하고 압축을 풉니 다.
- 구성 : 편집 server.cfg 파일과는 MS의에서 프록시의 값을 넣어
PARENT_PROXY
와PARENT_PROXY_PORT
. DOMAIN 및 USER의 값을 입력하십시오. PASSWORD는 비워 두십시오 (콜론 뒤에는 없음) – 시작할 때 프롬프트가 표시됩니다. - apserver를 실행하십시오.
cd aps097; python main.py
- 보석 실행 :
gem install—http-proxy http://localhost:5865/ library
프록시 뒤에서 일하고 있으며 http://rubygems.org 에서 직접 다운로드하여 SASS를 설치했습니다 .
나는 그 다음 달렸다 sudo gem install [path/to/downloaded/gem/file]
. 나는 이것이 모든 보석에 효과가 있다고 말할 수는 없지만 일부 사람들에게는 도움이 될 수 있습니다.
이것은 Windows 상자에서 나를 위해 일했습니다.
set HTTP_PROXY=http://server:port
set HTTP_PROXY_USER=username
set HTTP_PROXY_PASS=userparssword
set HTTPS_PROXY=http://server:port
set HTTPS_PROXY_USER=username
set HTTPS_PROXY_PASS=userpassword
필요할 때 환경 값을 설정하는 데 사용하는이 줄이있는 배치 파일이 있습니다.
내 경우에는 트릭이 HTTPS_PROXY
설정되었습니다. 그것들이 없으면 항상 407 프록시 인증 오류가 발생합니다.
* nix 시스템을 사용하는 경우 다음을 사용하십시오.
export http_proxy=http://${proxy.host}:${port}
export https_proxy=http://${proxy.host}:${port}
그런 다음 시도하십시오.
gem install ${gem_name}
rubysspi-1.3.1은이 페이지의 지침을 사용하여 Windows 7에서 나를 위해 일했습니다.
http://www.stuartellis.eu/articles/installing-ruby/
빠른 답변 : 설치 / 업데이트 모두에 매개 변수를 사용하여 프록시 구성 추가
gem install --http-proxy http://host:port/ package_name
gem update --http-proxy http://host:port/ package_name
SOCKS5 프록시를 사용하려면 rubygems-socksproxy https://github.com/gussan/rubygems-socksproxy를 사용해보십시오 .
OSX 10.9.3에서 작동합니다.
프록시 뒤에있는 경우 Ruby 다운로드로 이동하여 다운로드 를 클릭하면 지정된 업데이트 (또는 Gem)가 원하는 위치로 다운로드됩니다.
다음으로 Ruby 명령 행을 통해 다음을 사용하여 다운로드 한 위치로 이동하십시오. pushd [directory]
예 : pushd D:\Setups
다음 명령을 실행하십시오. gem install [update name] --local
예 : gem install rubygems-update --local
.
Ruby 업데이트 버전 2.4.1이 설치된 Windows 7에서 테스트되었습니다.
다음 명령 사용을 확인하려면 : ruby -v
배치 파일 (Bundler와 같은 다른 Ruby gem에 대해해야 할 수도 있음)을 편집하는 대신이 작업을 한 번 수행하고 올바르게 수행하는 것이 좋습니다.
Windows에서 회사 프록시 뒤에는 HTTP_PROXY
시스템에 환경 변수를 추가 하기 만하면됩니다.
- 시작-> 컴퓨터를 마우스 오른쪽 버튼으로 클릭-> 속성
- "고급 시스템 설정"을 선택하십시오
- 고급-> 환경 변수를 클릭하십시오.
- "
HTTP_PROXY
" 라는 새 시스템 변수를 만들고 값을 프록시 서버로 설정하십시오 - 재부팅 또는 로그 아웃 한 후 다시 로그인
인증 요구 사항에 따라 HTTP_PROXY
값은 다음과 같이 간단 할 수 있습니다.
http://proxy-server-name
또는 다른 사람들이 지적했듯이 더 복잡합니다.
http://username:password@proxy-server-name:port-number
참고 URL : https://stackoverflow.com/questions/4418/how-do-i-update-ruby-gems-from-behind-a-proxy-isa-ntlm
'Programing' 카테고리의 다른 글
ROR 마이그레이션 중에 열 유형을 Date에서 DateTime으로 변경 (0) | 2020.04.20 |
---|---|
게터와 세터는 디자인이 좋지 않습니까? (0) | 2020.04.20 |
Angular 1.2 이상에서 ng-bind-html-unsafe를 복제하기 위해 $ sce.trustAsHtml (string)을 어떻게 사용합니까? (0) | 2020.04.20 |
iPhone에서 SOAP 서비스에 액세스하는 방법 (0) | 2020.04.20 |
REST 인증 체계의 보안 (0) | 2020.04.20 |