파이썬에서 PIP로 설치할 때에도 역시 서버에서 패키지를 읽어온다. 어떤 이유던지 간에 반복적으로 설치를 해야할 경우 네트웍의 부하가 발생하므로 부하 감소 및 설치 시간 단축을 위하여 미러 서버를 알아 보았다. 많이 사용하는 것은 devpi 인 것 같다. PIP로 설치를 해야 하므로 Python과 PIP를 설치한다.
# sudo apt install python3 python3-pip
다음에는 devpi를 설치한다.
# pip install devpi-server
다음에는 devpi-init 로 초기 작업을 수행한다.
root@316de82ccf07:/# devpi-init
INFO NOCTX Loading node info from /root/.devpi/server/.nodeinfo
INFO NOCTX generated uuid: 5554de437dc84dedbbe1979040af5047
INFO NOCTX wrote nodeinfo to: /root/.devpi/server/.nodeinfo
INFO NOCTX DB: Creating schema
INFO [Wtx-1] setting password for user 'root'
INFO [Wtx-1] created user 'root'
INFO [Wtx-1] created root user
INFO [Wtx-1] created root/pypi index
INFO [Wtx-1] fswriter0: commited at 0
마지막으로 devpi-server를 실행한다. 모든 요청에 대하여 응답할 수 있도록 0.0.0.0 으로 설정하였다.
root@316de82ccf07:/# devpi-server --host=0.0.0.0
2021-11-01 17:11:09,293 INFO NOCTX Loading node info from /root/.devpi/server/.nodeinfo
2021-11-01 17:11:09,294 INFO NOCTX wrote nodeinfo to: /root/.devpi/server/.nodeinfo
2021-11-01 17:11:09,324 WARNI NOCTX No secret file provided, creating a new random secret. Login tokens issued beile option to provide a persistent secret. You can create a proper secret with the devpi-gen-secret command.
2021-11-01 17:11:11,537 INFO NOCTX devpi-server version: 6.2.0
2021-11-01 17:11:11,537 INFO NOCTX serverdir: /root/.devpi/server
2021-11-01 17:11:11,537 INFO NOCTX uuid: 5554de437dc84dedbbe1979040af5047
2021-11-01 17:11:11,537 INFO NOCTX serving at url: http://0.0.0.0:3141 (might be http://[0.0.0.0]:3141 for IPv6)
2021-11-01 17:11:11,537 INFO NOCTX using 50 threads
2021-11-01 17:11:11,537 INFO NOCTX bug tracker: https://github.com/devpi/devpi/issues
2021-11-01 17:11:11,537 INFO NOCTX IRC: #devpi on irc.freenode.net
2021-11-01 17:11:11,537 INFO NOCTX Hit Ctrl-C to quit.
2021-11-01 17:11:11,541 INFO Serving on http://0.0.0.0:3141
이제 클라이언트에서 이 devpi 서버 쪽으로 패키지를 요청하도록 한다. HTTPS를 이용하지 않을 경우 –trusted-host 를 지정하지 않으면 설치가 되지 않는다.
root@d7ec45a78430:/# pip3 install --trusted-host my.dongtan -i http://my.dongtan:3141/root/pypi/+simple/ pandas
Looking in indexes: http://my.dongtan:3141/root/pypi/+simple/
Collecting pandas
Downloading http://my.dongtan:3141/root/pypi/%2Bf/10e/10a2527db79af/pandas-1.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB)
|████████████████████████████████| 11.5 MB 2.0 MB/s
Collecting pytz>=2017.3
Downloading http://my.dongtan:3141/root/pypi/%2Bf/367/2058bc3453457/pytz-2021.3-py2.py3-none-any.whl (503 kB)
|████████████████████████████████| 503 kB 11.5 MB/s
Collecting python-dateutil>=2.7.3
Downloading http://my.dongtan:3141/root/pypi/%2Bf/961/d03dc3453ebbc/python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
|████████████████████████████████| 247 kB 7.6 MB/s
Requirement already satisfied: numpy>=1.17.3 in /usr/local/lib/python3.9/dist-packages (from pandas) (1.21.3)
Collecting six>=1.5
Downloading http://my.dongtan:3141/root/pypi/%2Bf/8ab/b2f1d86890a2d/six-1.16.0-py2.py3-none-any.whl (11 kB)
Installing collected packages: six, pytz, python-dateutil, pandas
Successfully installed pandas-1.3.4 python-dateutil-2.8.2 pytz-2021.3 six-1.16.0