폐쇄망에서 미러서버 사용하여 pip 패키지 다운로드 하기

cs2tree·2023년 2월 2일
0

리눅스

목록 보기
3/7

목 마른 자가 우물을 판다고... 연구실에 서버 관련 잘 아는 사람이 없을 뿐더러 어찌어찌 하다 역시나 잘(전혀) 모르는 내가 서버관리 담당이 되었기 때문에...

지금 하고 있는 작업은 보안이슈로 폐쇄망인 서버 컴퓨터에서 미러서버를 연결하여 미러서버에서 패키지를 다운로드 받아올 수 있게 하는 작업이다.

몇 가지 절차로 쉽게 끝날 줄 알았던 일이 여러가지 에러를 발생시키며 지연되고 있다.

방화벽 해제 요청

원내 행정 절차에 따라 방화벽 해제 요청을 하여 폐쇄망 서버와 미러서버가 통신이 가능하도록 한다.

일단 여기까지는 순조롭게 되었다.

pip.conf 파일 수정

~/.pip/pip.conf 파일을 수정하여, pip이 바라보고 있는 서버가 폐쇄망 서버가 아닌 미러서버가 되도록 한다.

아래 conf 파일을 바라보고 있는 미러서버에 맞게 수정한다.

[global]
index-url=
trusted-host=
timeout=

여기 까지도 순조롭게 되었다.

그런데 왜인지 모르게 에러가 자꾸 떠서 트러블 슈팅하는 과정을 정리해보려고 한다.

여기까지 설정을 하고

pip install torch

를 쳐보았다.

looking in indexes: (위에 적은 index-url)
collecting torch

라는 메세지가 나온 이후에 한참 시간이 걸린 뒤 아래 메세지가 뜬다.

ERROR: Could not install packages due to an OSError: HTTPConnectionPool(host='위에 적은 trused-host', port=~): Max retried exceeded with url: /repository/pypi-proxy/packages/torch/1.12.0/torch-1.12.0-cp39-cp39-manylinuex1_x86_64.whl (Caused by ResponseError('too many 500 error responese')

여기서 내가 파악할 수 있는 것은

1) OSError - HTTPConnectionPool 에러가 발생했다.
2) 접근하고자 하는 url에 retry를 너무 많이 했다.
3) 이 것은 ResponseError에 의해 야기되었는데, 그 에러는 500 error가 너무 많이 발생했다는 것이다. (500 error는 broad한 에러로서, response를 받는 과정에서 예기치 않은 에러가 발생했음을 뜻한다.)

일단 여기에서 모르겠다... 방법을 찾으면서 계속 포스팅하겠다.

ping 날려 보기

ping을 날렸을 때는 답변이 없다.

실패하였다는 답도 없고 성공하였다는 답도 없다. 오랜 시간 동안 계속 retry를 하고 있는 것으로 보인다.

서버 간 단방향 통신만 가능해서 그런 것이 아닐까 예상해본다.

curl 날려 보기

curl을 날렸을 때는 정상적으로 html 문서로 반응이 온다.

이로 보아서 방화벽 해제는 잘 되었고, 서버 간 통신이 가능함을 알 수 있다.

서버 간 연결이 잘 되었다면, 왜 에러가 뜨는 것일까?

지금 뜨는 에러는 접근하고자 하는 URL에 너무 많은 retry를 하였다는 것이다. 즉, url에 접근이 안된다는 것이다. 요청을 날렸는데, 응답이 없는 경우라고 생각된다.

왜 그런 걸까???

(문제점) 미러서버에 나와 버전이 맞는 라이브러리 설치 파일이 없음

결국, 미러서버에 있는 설치파일을 다운로드 받아서 쓰는 것인데, 미러서버에 있는 라이브러리 항목을 살펴보니 내 파이썬 버전, 내가 설치하려는 라이브러리 버전이 달라서 파일을 가져오지 못하는 거였다.

그래서 서버에 연결은 되지만 파일을 못 찾아서 가져오니 retry를 수없이 하다가 에러가 난 것이었다.

(해결방법) 미러서버 라이브러리 버전과 동일하게

그래서 해결 방법은 미러서버에 있는 설치 파일의 파이썬 버전과 내 서버에 있는 파이썬 버전을 동일하게 하고, 다시 설치를 진행해보는 것이다.

profile
___호기심 많은 씨앗___ 씨앗이 나무가 될 때까지 :D

0개의 댓글