본문 바로가기
Development/Free Topic

Ubuntu 여러 에러 잡기, 설치

by 곽동현 이스텔리앙 2017. 9. 6.

# apt-get install 팁

1) apt-get update를 하면, 등록해둔 주소에서 패키지 리스트를 가져온다

2) 아래와 같이하면 등록을 할 수 있다.(tee라는 명령어로 /etc/apt/sources/list파일 뒷부분에 이어쓰기한것)

echo "deb https://dl.bintray.com/wangzw/deb trusty contrib" | sudo tee /etc/apt/sources.list


3) 또는 설치파일인 deb를 직접 curl로 받아서, dpkg로 아래와 같이 설치할 수도 있다.

curl -O http://kr.archive.ubuntu.com/ubuntu/pool/main/p/protobuf/libprotobuf8_2.5.0-9ubuntu1_amd64.deb

dpkg -i libprotobuf8_2.5.0-9ubuntu1_amd64.deb



# ping설치하기

sudo apt-get install iputils-ping


# ifconfig 설치

sudo apt-get install net-tools


출처: https://minooz.tistory.com/176 [우주 Blog]




# ssh 터널링
ssh -L 50001:localhost:50001 -i ~/ssh_pubkey/nsml_jp -p 30022 root@10.122.77.197
ssh에 존재하는 막강한 기능. ssh를 접속하면서 remote에 있는 임의의 포트를 맵핑시켜서 내맘대로 사용할 수 있다. ssh로 접속하면서 -L로 이렇게 위와같이 입력하면, 50001포트를 특정 URL과 포트로 맵핑시킬 수 있음. 그래서 docker container 만들 때 포트를 안열어뒀더라도 마음대로 임의의 포트를 사용할 수 있음. 단 이걸하려면 매번 ssh가 접속되어 있어야함. 그게 싫으면 도커 컨테이너를 새로 만들어야함.

# ssh private-key 등록하기
ssh-keygen 으로 생성된 pub_key를 복사해서 remote 서버의 .ssh/authorized_keys 파일을 열어서 맨 아래에 붙여넣기 한다.

이렇게 pubkey를 이어붙이면, 그에 대응되는 priviate key로 전부 접속이 가능하다. private key를 복사해서 다른사람이 공용으로 접속하는것도 당연히 가능하다.



# WARNING: UNPROTECTED PRIVATE KEY FILE! 에러 해결
chmod 600 키파일




# 이유를 알 수 없는 문제로, apt-get 이 안된다거나, git pull이 안된다면?

매우 아주 높은 확률로 DNS 설정이 잘못된 것!!



모든게 아주 다 잘 되는데, 특정 url에 접속이 계속 불가능하다고 나오면? DNS 설정문제일 것이다.




- 확인 방법

ping [IP주소] 를 이용해서, DNS없이 잘 되는지 확인

host [도메인] 을 입력해서, ip가 잘 잡히는 지



# DNS 서버 등록하거나 수정하기

sudo vim /etc/resolv.conf


 nameserver 8.8.8.8

 nameserver [원하는 DNS서버 주소]


sudo /etc/init.d/networking restart





* 그러나 /etc/resolv.conf 파일은 OS에 의해 계속해서 새로 생성될 수 있으므로, 이런 경우 다음 링크를 참조.


http://webdir.tistory.com/188

http://ngee.tistory.com/246




# 특정 URL의 ip주소 알아내기

cmd창을 열고, ping URL을 입력하면 ip주소가 나온다.

만약 wsl에서는 ping URL을 했더니 알수없는 host라고 나온다면, 윈도우 cmd에만 DNS가 등록되어있기 때문으로 보인다.




# WSL에서 서버의 ip와 이름을 직접 hosts에 기록하는 방법.

sudo vim /etc/hosts 혹은 

Windows/System32/drivers/etc/hosts 를 관리자 권한 메모장으로 열어서 다음 주소를 추가해줘야한다.


10.105.207.243 cli.nsml.navercorp.com


이러한 현상이 일어나는 이유는, 2차 인증을 하여 window에서는 새로할당된 DNS를 이용해서 url을 찾는 것이 가능한데, 이러한 정보가 WSL에는 제대로 반영이 안되어서 나타나는 문제로 보인다.


그다음

sudo cp /mnt/c/Windows/System32/drivers/etc/hosts /etc/hosts


그런데 WSL에서 hosts를 수정해도 계속 새로 초기화하는 문제가 있음. 그래서 bashrc를 수정해서 강제로 window의 hosts를 무조건 시작할때마다 복붙해서 wsl로 가져오게 해야함.


https://github.com/Microsoft/WSL/issues/2059




# nodejs 설치하기

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
sudo apt install nodejs

https://websiteforstudents.com/install-the-latest-node-js-and-nmp-packages-on-ubuntu-16-04-18-04-lts/






댓글0