□ 환경

- ubuntu18.04, 20.04

- python 3.7 이상

 

pip는 운영체제에 내장되어 있거나 default로 설치되는 python에 내장되어 탑재된 pip를 사용하게 되므로 pip 최신 버전으로 업데이트를 할 필요가 종종 있다. 한 예로 pip3로 버전을 확인해 보면 아래와 같이 너무 낮은 버전의 pip를 보게 된다.

$ pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

 

또한, 위와 같은 경우 pip 명령은 인식 못할 경우도 많아서 pip3를 쓰거나 alias나 symbolic link를 설정하는 등 부가적인 고생을 해야하는 경우도 있다.

 

1. 단순히 pip 버전만 올리고 싶다면, 아래와 같다. 

$ pip3 install --upgrade pip

 

대개의 경우 위 명령을 수행하면 pip가 최신 버전으로 설치됨과 동시에 별도 alias나 symlolic link 처리와 상관없이 pip를 사용하여 pip3를 호출할 수 있게 된다. 그러나, 경우는 python 버전은 기본 버전으로 유지된다. 즉, 위에서 예시한 python3.6 이라면 pip도 python3.6 환경을 따르는 pip 최신 버전이 설치된다는 뜻이다.

 

2. 자신이 사용하는 python에 내장된 pip를 바꾸고 싶다면, 

python은 여러 버전이 이미 설치되어 있기도 하고 계속 여러 버전을 설치해서 사용하는 경우도 많기 때문에 내장된 python과 새로 설치하여 사용하는 python이 다른 경우가 종종 있다.

해당 명령을 실행하면 현재 사용하고 있는 python의 pip가 최신 버전으로 업데이트 되며, 위 1번 처럼 pip를 실행하면 새로 설치한 pip3가 잘 동작하므로 깔끔하게 해결이 가능하다.

$ python -m pip install --upgrade --force-reinstall pip

 

참고로, 현재 사용하는 python에 내장된 pip 버전은 하기와 같이 버전을 확인할 수 있다.

$ python -m pip -version

 

끝으로 위 모든 과정을 예를 들어 설명한다면, 즉, 기본 설치된 pythondl 3.6이었으나 현재는 python3.7을 사용하고 있고 위 부터 순차적으로 수행했다면 아래와 같은 결과를 볼 수 있다.

$ python --version

Python 3.7.5

 

// 만약, pip와 pip3 간 wrapping 이 안되어 있다면 명령어를 찾지 못했다고 나온다.

$ pip
bash: pip: command not found

 

$ pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)

 

$ pip3 install --upgrade pip

Downloading ....

Installing collected packages: pip

 

$ pip --version
pip 21.3.1 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6)

 

$ python -m pip --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.7)

 

$ python -m pip install --upgrade --force-reinstall pip

Downloading ....

Installing collected packages: pip

 

$ python -m pip --version

pip 23.1.2 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)

 

// 위와 동일 결과

$ pip --version

pip 23.1.2 from /usr/local/lib/python3.7/dist-packages/pip (python 3.7)      

 

반응형

의외로 많이 보게 되는 단순한 설치 문제이다.

$ pip install scikit-build

 

위처럼 간단히 해결할 수 있다.

반응형

생각보다 짜증나는 설치 오류이다. 해결은 매우 쉽다. attr과 attrs 패키지를 모두 설치해야 한다.

$ pip install attr

$ pip install attrs

 

proxy 설정이 되어 있는 경우 하기 사이트에서 해결할 수 있다.

https://driz2le.tistory.com/275

 

Proxy setting, pip (ubuntu)

pip의 경우 파라메터를 주는 방식으로 proxy를 설정한다. $ pip install --proxy http://proxy.server:port 패키지명 e.g.) # proxy 서버를 이용해서 jupyter notebook을 설치한다. $ pip install --proxy http://10.10.10.5:8080 jupyter

driz2le.tistory.com

 

 

반응형

□ 환경

- ubuntu18.04, 20.04

- python 3.7 이상

 

주로 numpy 설치 시 잘 발생하는 오류이다.  (특히, proxy 환경에서... ...)

SystemError: Cannot compile 'Python.h'. Perhaps you need to install python-dev|python-devel.

 

1) 결론부터, pip를 이용하는 방식으로 했을 때 안될 경우 해결방법이 바로 아래와 같다.

$ sudo apt-get install python-dev

 

특정 python 버전과 밀접한 관련도 많으니, 아래처럼 버전을 확인하여 지정해 주는 것이 가장 해결이 잘된다.

// 아래와 같이 #.# 에 버전을 지정. e.g.) apt-get install python3.7-dev

$ apt-get install python[#.#]-dev

 

이후 numpy를 설치하면 잘 설치되는 것을 확인할 수 있다.

// 아래는 proxy 환경 사례

$ pip install  --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org  --proxy 프록시서버IP:포트 numpy

 

2) pip를 활용하는 일반 방식, 아래와 같이 패키지 설치 시 해결된다고 많은 사이트에서 소개되어 있다. 의외로 잘 해결이 않되는 경우가 많다.

$ pip install python-dev 

 

proxy 환경 아래라면 

$ pip install   --proxy 프록시서버IP:포트 python-dev

 

proxy 환경 아래, sslVerify 문제(Retrying ...  connection.VerifiedHTTPSConnection ...)가 있을 경우 

$ pip install  --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org  --proxy 프록시서버IP:포트 python-dev

 

e.g.)

$ pip install  --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org  --proxy 10.10.10.10:8080 python-dev

반응형

git 프록시 설정(proxy setting)은 아래와 같다.

$ git config --global http.proxy [프록시서버주소:포트]
$ git config --global https.proxy [프록시서버주소:포트]

 

e.g.) git config --global https.proxy http://10.10.10.10:8080

 

proxy server를 경유할 경우 높은 확률로 https 인증 실패를 당하므로

$ git config http.sslVerify false

 

도 함께 해주는 것이 좋다.

 

참고로 기등록된 proxy 주소가 있는지 알고 싶다면 아래 명령으로 확인 가능하다.

$ git config --global --get http.proxy
$ git config --global --get https.proxy

$ git config --global --get http.sslVerify

반응형

'Linux > Proxy' 카테고리의 다른 글

Proxy setting, curl  (0) 2023.05.28
Proxy setting, date - Proxy가 있을 때 시간 동기화  (0) 2020.06.11
Proxy setting, npm (ubuntu 18.04)  (0) 2020.04.06
Proxy setting, jupyter notebook  (0) 2020.02.06
Proxy setting, conda (Windows)  (0) 2019.12.08

□ 환경

- ubuntu18.04, 20.04

- python 3.7 이상

 

프록시(proxy)가 설치되어 있는 환경에서 docker를 사용할 때, 

docker container 를 실행시킨 후 컨테이너 내부에 패키지들을 설치하기 위해 apt-get update를 실행시키면 메세지와 함께 package list가 update 되지 않는 경우가 있다. 당연히 다른 패키지들을 설치할 수도 없다.

$ apt-get update

...

connection timed out

 

이 경우 여러 원인이 있겠으나 대개의 경우 docker container 안에 proxy setting이 안되어 있는 경우로 proxy 설정을 해주면 해결되는 경우가 많다. 하기 링크에서 설정 가능하다.

https://driz2le.tistory.com/272

 

Proxy setting, apt-get (ubuntu 18.04)

Ubuntu 포함 linux 기본 환경에서 apt 또는 apt-get 에 대한 proxy 설정방법이다. Docker 환경에서 container 안에서 proxy를 설정해야할 경우에도 똑같이 적용하면 된다. 다만, docker container 안에서는 proxy가 안

driz2le.tistory.com

 

apt-get update도 안되는 상황이면 보통 vi 도 설치가 되지 않았을 가능성이 크므로, 이때는

$ sudo echo 'Acquire::http::proxy "http://10.10.10.10:8080/";' > /etc/apt/apt.conf.d/90proxy

$ sudo echo 'Acquire::https::proxy "http://10.10.10.10:8080/";' >> /etc/apt/apt.conf.d/90proxy

// 정상적으로 기록되었는지 확인

$ sudo cat /etc/apt/apt.conf.d/90proxy

Acquire::http::proxy "http://70.10.15.10:8080/";
Acquire::https::proxy "http://70.10.15.10:8080/";

 

위에서 10.10.10.10:8080 은 자신의 proxy server ip나 url을 사용하면 되며 90proxy 파일명은 어떤 이름이든 상관없다.

반응형

curl은 인터넷 상에서 데이터 전송을 위해 사용하는 command line 도구로, https, https, FTP, SFTP 등 다양한  protocols를 지원한다. 따라서, 프록시(proxy) 서버가 설치된 경우, curl 명령을 제대로 사용하려면 proxy 를 명시해야 하는 경우가 있다. 아래와 같은 명령을 사용한다.

curl -x proxy.com:8080 
     -U login:password

당연히 proxy.com 대신 1.2.3.4:8080 처럼 프록시 서버의 IP로 기재하는 것도 가능하다.

 

반응형

'Linux > Proxy' 카테고리의 다른 글

Proxy setting, git  (0) 2023.06.04
Proxy setting, date - Proxy가 있을 때 시간 동기화  (0) 2020.06.11
Proxy setting, npm (ubuntu 18.04)  (0) 2020.04.06
Proxy setting, jupyter notebook  (0) 2020.02.06
Proxy setting, conda (Windows)  (0) 2019.12.08

윈도우 원격접속을 이용해서 Ubuntu GUI 환경으로 접속을 위해 xrdp 를 이용할 수 있다.

 

우선 하기와 같이 xrdp vnc3server tightvncserver를 삭제한다. 해당 서비스의 경우 높은 확률로 vnc error ( VNC error - problem connecting)를 발생시키기 때문이다.

이후 다시 tightvncserver, xrdp를 설치한다.

 

$ sudo apt-get remove xrdp vnc4server tightvncserver
$ sudo apt-get install tightvncserver
$ sudo apt-get install xrdp

 

Ubuntu 계정의 home 디렉토리에 .xsession 파일을 생성한다. 그리고 .xsession 파일 안에 하기와 같이 기재한다. 

해당 명령은 Ubuntu 연결 시 default GUI를 설정해 주는 것으로 Ubuntu 18.04나 20.04 버전은 gnome이다. 

 

$ gnome-session –session=gnome-fallback

 

추가로 본인의 GUI환경이 잘 설치되어 있는지도 확인한다. sudo systemctl statud gdm3 명령을 수행했을 때 Active: active (running) 으로 나오면 정상이다.

 

$  sudo systemctl status gdm3

 

● gdm.service - GNOME Display Manager
   Loaded: loaded (/lib/systemd/system/gdm.service; static; vendor preset: enabled)
   Active: active (running) since Fri 2023-03-03 13:29:42 KST; 3 weeks 5 days ago
 Main PID: 1227 (gdm3)
    Tasks: 3 (limit: 4915)
   CGroup: /system.slice/gdm.service
           └─1227 /usr/sbin/gdm3

 

위와 같이 나오지 않을 경우 별도 Unbuntu용 GUI 환경을 설치해 주거나 gdm3 서비스를 띄워야 한다.

 

//  gdm3가 없다면 굳이 패키지를 지울 필요는 없다.

$ sudo apt remove --purge -y gdm3    
$ sudo apt autoremove --purge -y

 

// 하기와 같이 gdm3 를 재설치하고 서비스를 시작한다.
$ sudo apt install gdm3 -y
$ sudo systemctl start gdm3.service

 

// 서비스가 잘 수행되고 있는지 확인

$ systemctl status gdm3

 

// 경우에 따라 시스템 재시작이 필요할 수도 있다.

$ sudo reboot

 

이제 xrdp도 띄워야 한다. 우선 xrdp가 잘 띄워져 있는지 먼저 확인한다. 

 

$ sudo systemctl status xrdp


● xrdp.service - xrdp daemon
   Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2023-03-30 11:48:23 KST; 18min ago
     Docs: man:xrdp(8)
           man:xrdp.ini(5)
 Main PID: 21249 (xrdp)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/xrdp.service
           ├─21249 /usr/sbin/xrdp
           └─22307 /usr/sbin/xrdp

 

만약 Active: inactive (dead) 거나 Active: fail 이면 다음 명령을 수행한다.

 

$ sudo systemctl start xrdp

 

참고로 서비스를 내리거나 다시 시작하는 명령은 다음과 같다.

 

$ sudo systemctl stop xrdp  
sudo systemctl restart xrdp

 

xrdp의 기본 포트는 3389 포트이며 포트가 잘 열려있는지 netstat -lntp 명령을 통해서 확인해야 한다. xrdp 서비스가 시작된 상태에서 아래와 같이 tcp6 3389 ... LISTEN 가 보이면 열려있는 것이다.

 

$ netstat -lntp

 

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
                             ... (중략) ...
tcp6       0      0 :::3389                 :::*                    LISTEN      -

 

포트가 잘 떠있어도 Ubuntu 방화벽에서 차단하면 의미가 없다. 아래와 같이 방화벽에 포트를 등록한다.

 

ufw allow 3389

 

여기까지 실행되었다면 잘 되고 있는 것이다. 이제 윈도우에서 원격데스트톱 호출을 실행해 보자. 접속 Session은 Xorg로 한다.

 

□ 관련 페이지

- xrdp 원격 접속, 검은 화면 해결(black screen)    https://driz2le.tistory.com/533

 

xrdp 원격 접속, 검은 화면 해결(black screen)

윈도우 환경에서 우분투 원격 접속 할때, 접속은 되지만 검은 화면(black screen)만 보이는 경우가 많다. (사실 대부분...?) 이 경우, xrdp X session start script에 아래 세 줄을 추가해서 해결할 수 있다. uns

driz2le.tistory.com

 

반응형

Texlive 는 Tex를 쉽게 설치하고 사용할 수 있도록 하기 위해 진행된 프로젝트이며 현재까지도 지속 업데이트되고 있다.

특히 한글 사용이 가능한 몇 안되는 Tex 중 하나이다.

Ubuntu에서 Texlive를 사용하기 위해서는 아래 두 개 프로그램을 모두 설치해 주어야 한다.

texlive

Tex을 사용하는데 필요한 필수 라이브러리가 포함된 패키지, 기본 설치 필요

texmaker

texlive를 쉽게 사용하도록 해주는 UI 도구

 

□ install texlive

한글 사용을 위해 ko.TeX를 설치해야 하지만 texlive-full을 사용할 경우 별도 설치는 필요없다.

sudo add-apt-repository ppa:texlive-backports/ppa
sudo apt-get update
sudo apt-get install texlive-full

참고) ko.Tex 설치 - sudo apt-get install ko.tex

 

□ install texlive

sudo apt-get install texmaker

 

ㅁ texmaker 실행

실행은 너무 간단다.

texmaker

 

 

반응형

'Linux' 카테고리의 다른 글

Troubleshooting, docker container 안에서 apt-get update connection timed out  (0) 2023.06.03
Ubuntu GUI 원격접속  (0) 2023.03.30
clamav install  (0) 2020.05.10
node.js, npm 설치  (0) 2020.04.07
SQLAlchemy 설치, pip install SQLAlchemy  (0) 2020.04.03

Proxy가 존재하는 환경에서 리눅스 서버는 제대로 시간 동기화가 되지 않는다.

대개의 경우 ntpdate 등 시간 동기화 소프트웨어도 대부분 제대로 동작하지 않는다.

물론, 이것은 Proxy 설정과는 좀 다른 경우이지만 Proxy가 존재할 경우 종종 필요한 기능이다.

따라서 해당 카테고리에 정리해 놓았다.

 

방법은 간단하다.

단 sudo로 인해 패스워드를 물어보기 때문에 패스워드를 입력해서 실행한 후 곧바로 다시 실행해주는 것이 좋다.

앞 서 입력한 패스워드로 인해서 재실행 시에는 패스워드 입력을 스킵하고 바로 실행이 되기 때문이다.

sudo date -s "$(wget --no-cache -S -O /dev/null google.com 2>&1 | \
sed -n -e '/  *Date: */ {' -e s///p -e q -e '}')"

 

□ 상세 설명

아래 명령 wget을 실행하면 첫줄에 호출 시간과 함께 장황한 http 프로토콜 로그가 출력된다.

$ wget --no-cache -S -O /dev/null google.com 2

--2020-06-11 19:36:36--  http://google.com/
Connecting to 10.10.15.10:8080... connected.
Proxy request sent, awaiting response... 
  HTTP/1.1 301 Moved Permanently
  Location: http://www.google.com/
  Content-Type: text/html; charset=UTF-8
  Date: Thu, 11 Jun 2020 10:36:36 GMT
  Expires: Sat, 11 Jul 2020 10:36:36 GMT
  Cache-Control: public, max-age=2592000

반드시 google.com을 할 필요는 없으며 이를테면 naver.com이라든지, 신뢰성이 있는 어떤 사이트를 입력해도 가능하다.

 

아래 sed 명령은 스트림 편집 명령으로 Data로 시작하는 문장을 찾는다.

sed -n -e '/  *Date: */ {' -e s///p -e q -e '}'

 

따라서 아래와 같이 두 문장을 연결하여 수행하면 날짜 부분만 출력하게 된다.

$ wget --no-cache -S -O /dev/null google.com 2>&1 | \
  sed -n -e '/  *Date: */ {' -e s///p -e q -e '}'

Thu, 11 Jun 2020 10:41:01 GMT

 

해당 날짜를 data -s 의 입력값으로 전달하여 날짜를 변경하는 것이다.

반응형

'Linux > Proxy' 카테고리의 다른 글

Proxy setting, git  (0) 2023.06.04
Proxy setting, curl  (0) 2023.05.28
Proxy setting, npm (ubuntu 18.04)  (0) 2020.04.06
Proxy setting, jupyter notebook  (0) 2020.02.06
Proxy setting, conda (Windows)  (0) 2019.12.08

+ Recent posts