2023. 2. 8. 15:42ㆍPython
폐쇄망 RHEL 7.6에 Python 3.x 를 설치해야되는 상황이 발생
CENTOS 7 이랑 호환된다는 이야기를 들었기 때문에 오픈소스인 CENTOS7을 VM에 설치해 테스트해보기로 했다.
인터넷이 되는환경에서 yumdownloader를 통해 의존성이 있는 라이브러리들을 설치하면서 오프라인에서 설치할 수 있게 미리 미리 준비하도록 하자
우선 필요한 파이썬 패키지와 Python 3.8 과파이썬 패키지 설치를 위한 pip, setuptools 라이브러리를 준비한다.
#1 파이썬 설치
- gcc 설치 (Python을 설치하기 위해 필요한 컴파일러)
우선 파이썬 설치를 위해 gcc라는 리눅스의 표준 컴파일러를 먼저 설치하여야 한다.
gcc 설치를 위한 의존성 설치를 위해 우선 yum-utils를 인터넷이 되는 환경 설치해보자
yum install yum-utils
해당 명령어를 통해 yumdownloader를 사용할 수 있는데
yumdownloader --resolve gcc
해당 명령어를 통해 의존성이 있는 모든 패키지들을 한꺼번에 설치한다.
순서대로 의존성 라이브러리들을 설치해주는 명령어
rpm -Uvh *.rpm
여기까지 하면 gcc설치가 끝이나며 파이썬을 설치할때 사용할 make 명령어를 사용할 수 있게 된다.
- zlib 설치 ( pip 사용을 위해 미리 파이썬 빌드하기 전에 설치해줘야 함)
zlib의 경우 인터넷에서 zlib.tar.gz 파일을 설치해야 한다. wget을 이용해서 설치해줘도 되고 직접 설치파일을 설치해 업로드 해도 된다.
먼저 wget 설치를 한다.
yum install wget
wget을 통해 zlib.tar 파일을 가져온다.
wget https://www.zlib.net/zlib-1.2.13.tar.gz
가져온 파일을 압축을 풀어주고 설치를 시작
tar zxvf zlib*
cd zlib-* --> 압축을 푼 파일로 들어가줘야함
./configure
make && make install
- libffi-devel 설치 ( pip 사용을 위해 미리 파이썬 빌드하기 전에 설치해줘야 함)
libffi-devel을 의존성과 함께 설치
yumdownloader --resolve libffi-devel
rpm -Uvh *.rpm
- openssl 설치 ( pip 사용을 위해)
openssl을 설치하기 전 perl이라는 프로그래밍언어를 설치해줘야한다. wget을 통해 설치해주자!
wget https://www.cpan.org/src/5.0/perl-5.24.1.tar.gz --no-check-certificate
tar zxvf perl* 압출을 풀어주고 설치를 진행해보자
./Configure -des -Dprefix=$HOME/local/perl
make && make install
openssl도 똑같이 wget을 통해 가져오자
wget https://www.openssl.org/source/openssl-1.1.1g.tar.gz --no-check-certificate
tar zxvf openssl* 을 통해 압축을 풀어주고 설치해보자
./config
make && make install
이때 추후 pip을 설치해서 파이썬 라이브러리를 설치할때 openssl을 설치했는데도 ssl 관련 에러가 뜨는 경우가 있는데 환경변수를 설정해서 해결하도록 하자
vi ~/.bashrc 에 들어가서
export LD_LIBRARY_PATH = openssl이 설치된 디렉토리/openssl-1.1.1g
source ~/.bashrc
를 해주면 오류가 해결된다.
- bzip2-devel 설치 ( 파이썬 머신러닝 관련 라이브러리 설치를 위해)
yumdownloader --resolve bzip2-devel
rpm -Uvh *.rpm
- sqlite-devel 설치 ( 파이썬 머신러닝 관련 라이브러리 설치를 위해)
yumdownloader --resolve sqlite-devel
rpm -Uvh *.rpm
- Python 설치!@
미리 받아둔 파이썬 파일을 옮기고 압축 해제
tar xzvf Python3.8x.tar.gz
cd Python3.8* 후
./configure --enable-optimizations
make altinstall -> 이미 python2.x 이 있기 때문에
which python3.8
vi ~/.bashrc
alias python3='/usr/local/bin/python3.8' <--- = 사이에 띄어쓰기 금지
source ~/.bashrc
python3 하면 이제 python3 콘솔이 켜지는 것을 확인
- setuptools 설치!@
미리 받아둔 라이브러리 파일을 옮기고 압축해제
tar xzvf setuptools*
python3 setup.py install
- pip 설치!@
미리 받아둔 라이브러리 파일을 옮기고 압축해제
tar xzvf pip*
python3 setup.py install
여기까지 완료가 되면 pip 명령어를 사용할 수 있게된다.
- 필요 패키지 설치 예) jupyter
pip download jupyter
pip download 명령어를 통해 jupyter 설치에 필요한 모든 의존성있는 라이브러리들을 설치하고
설치할 서버에 옮겨준다.
pip install --no-index --find-links="./" jupyter
해당 명령어를 통해 jupyter 설치에 필요한 모든 패키지들을 한꺼번에 설치한다.
이런식으로 필요한 패키지들을 하나하나 구성해보자
이렇게 테스트를 완료한 파일들을 잘 모아서 RHEL 7.x 에 옮겨서 설치를 진행하게 되면
python이 잘 작동하는 것을 확인했다.
'Python' 카테고리의 다른 글
Python에서 HDFS에 저장된 이미지 불러오기 (0) | 2023.11.29 |
---|---|
서울시 도로소통정보 시각화(with folium)-(1) (1) | 2023.11.21 |
VM과 MobaXterm 연동하기 (1) | 2023.10.25 |
Python 가상 환경 만들기 (0) | 2023.08.29 |
REST API 호출해 데이터 프레임 생성하기 (0) | 2023.08.23 |