wsl2를 통해 ubuntu를 설치해서 사용하다보면 다음과 같은 오류가 발생하는 경우가 있다.

이럴때는 wsl2에서 systemd를 활성화해주면 된다.

System has not been booted with systemd as init system (PID 1). Can't operate. 
Failed to connect to bus: Host is down

 

1. 파워쉘에서 wsl 버전 확인

 

2. ubuntu에서 wsl.conf 파일을 아래와 같이 수정

sudo nano /etc/wsl.conf

 

 

3. pstree 확인: systemd 활성화 전에는 ubuntu 시스템이 init으로 관리하고 있음.

즉, 저 화면이 나오면 systemd가 작동이 안되고 있다는 뜻!

 

4. ubuntu에서 exit로 종료하고 파워쉘에서 ubuntu 종료된 것 확인하기


   

- 만약에 종료가 20초가 지나도 안된다면 아래 명령어로 종료시키기

 

5. ubuntu 재실행 후 pstree 확인

 

6. 잘 실행되는지 확인해보기

 

 

 

참고: https://m.blog.naver.com/xell00/223158675748

 

error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.

    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.

    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.

    See /usr/share/doc/python3.12/README.venv for more information.

pip install ipython을 하려고 하니까 위와 같은 에러가 나왔다.  아래 코드를 시도해보고 안되면 아래 순서대로 하기

sudo apt install ipython3

 

 

1. 가상환경에서 ipython을 설치해줬다.

python3 -m venv .venv
sudo apt install python3.12-venv  (생략해도 됨)

2. 가상환경을 활성화 해준 후 다운 받고 가상환경에서 빠져나오기

source .venv/bin/activate
python3 -m pip install ipython
 deactivate

3. 작동되는지 확인

ipython 
ipython3

실무하면서 로컬에서 파일을 복사하려면 cp를 사용했으나, 로컬에서 서버, 서버에서 서버, 서버에서 로컬로 파일을 복사할 때는 rsync를 많이 사용했었다. 오랜만에 하려고 하니까 매일 쓰던 것도 기억이 가물가물해서 메모해 두려고 한다!

 

rsync 명령어
  • 원격 또는 로컬 간에 파일이나 디렉토리를 복사하는 리눅스의 기본 내장 명령어
  • 로컬 to 로컬, 서버 to 서버, 로컬 to 서버, 서버 to 로컬 다 가능!
# < 원격에 디렉토리 복사>
# rsync [User]@[IP Address]:[File Name] [Path1:가져올 위치] [path2: 저장할 위치]

rsync -avzhP test-directory twpower@192.168.1.2:/home/s~~ ./


# 디렉토리 내 파일들과 하위 디렉토리들 복사
# rsync [Directory Name]/ [User]@[IP Address]:[Path]

rsync -avzhP test-directory/ twpower-private-server:~
rsync -avzhP test-directory/ twpower@192.168.1.2:~


# 원격에 있는 파일 로컬로 가져오기
# rsync [User]@[IP Address]:[File Name] [Path]

rsync -avzhP twpower-private-server:~/test.txt .
rsync -avzhP twpower@192.168.1.2:~/test.txt .

# 전송시 파일명 변경도 가능

rsync -avzhP twpower-private-server:~/test.txt ./test-renamed.txt
rsync -avzhP twpower@192.168.1.2:~test.txt ./test-renamed.txt

# 원격에 있는 디렉토리 로컬로 가져오기
# rsync [User]@[IP Address]:[Directory Name] [Path]
# 디렉토리 자체가 복사된다.

rsync -avzhP twpower-private-server:~/test-directory .
rsync -avzhP twpower@192.168.1.2:~/test-directory .


# 디렉토리 내 파일들과 하위 디렉토리들 복사
# rsync [User]@[IP Address]:[Directory Name]/ [Path]

rsync -avzhP twpower-private-server:~/test-directory/ .
rsync -avzhP twpower@192.168.1.2:~/test-directory/ .

# 만약 포트가 포함되어 있을 경우(기존 원격에서 쓰던 폴더명 그대로 사용하고 싶을 경우, 현재있는 디렉토리에 폴더명과 파일 그대로 생성)
# rsync -e 'ssh -p [포트번호]' -avzh [User]@[IP Address]:[Directory Name]/ [Path]

 rsync -e 'ssh -p 8888' -avzh srjung@bigsoft.iptime.org:/home/srjung/Fun-DataAnalysis ./

환경변수 설정

쉘 확인

$ echo $SHELL
/usr/bin/zsh

환경변수 추가

~/.zshrc  ~/.bashrc파일에 해당 내용추가

export PATH=$HOME/anaconda3/bin:$PATH

환경변수 적용

$ source ~/.zshrc
$ source ~/.bashrc

conda init

$ conda init zsh

현재 실행 중인 터미널을 재실행 시켜야 한다.

설치 완료 확인

$ conda --version
conda 4.9.2

 

참조: https://velog.io/@tube-jeonghoon/Ubuntu%EC%97%90-anaconda-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0

포트번호 확인

$ netstat -nap | grep {포트번호}
  ex) netstat -nap | grep 8080

삭제하기

fuser -k -n tcp {포트번호}

 

python경로가 온전치 못해 발생하는 에러. 검색해도 안나와서 오래걸렸다..

아래 두 줄 명령어 순서대로하면 해결됨

 

PYTHON_BIN_PATH="$(python3 -m site --user-base)/bin"
PATH="$PATH:$PYTHON_BIN_PATH"
우분투 서버 내에서 jupyter notebook을 원격 접속하기

 

 

실행환경

OS : Ubuntu 20.04 LTS

Python : Python 3.8

pip : pip 22.1

 

1. Jupyter notebook 설치하기

$ sudo apt-get install jupyter

- 잘 설치 되었나 확인

jupyter --version

2. jupyter 설정하기

$ jupyter notebook --generate-config

3. .jupyter 경로로 들어가기 

    - 만약에 경로가 안들어가지면 다시 주피터를 다운 받아야함 

$ cd .jupyter

4. jupyter password 생성하기(생략가능)

$ ipython

위와 같이 In[1]이 뜨면 아래 코드 한줄씩 순서대로 실행

from notebook.auth import passwd
passwd
passwd()

enter password가 뜨면 원하는 패스워드를 입력하고 verify password로 한번 더 패스워드를 입력해준다.

그러면 어떤 알 수 없는 문자토큰을 주는데 이걸 메모장 같은데에 복사해둔다!

 

5. 앞서 생성했던 jupyter notebook config 파일 열어서 설정하기

$ vi jupyter_notebook_config.py

 i(코드 변경할 수 있도록 도와주는 키)를 누르고 아래와 같이 설정해준다.

c = get_config()
c.NotebookApp.allow_origin = "*"
c.NotebookApp.notebook_dir = "[사용자가 jupyter notebook 열었을때 보이고자하는 첫화면 경로 입력 ex) "/home/"]"
c.NotebookApp.ip = "0.0.0.0"
c.NotebookApp.port = 8888
c.NotebookApp.password = u'[패스워드 설정할 때 받았던 토큰 그대로 복사]'
c.NotebookApp.open_browser = False

주의: c.NotebookApp.password 설정할 때 u하고 띄어쓰기 없이 그대로 복붙해줘야한다!

설정이 완료됐으면 Esc 키를 누르고 :wq를 눌러 빠져나온다.

 

6. jupyter 실행하기

$ jupyter notebook

만약에 백그라운드로 실행을 원할 경우에 앞에 nohup을 붙이고 뒤에 &를 붙이면 된다!

(백그라운드: 프로세스가 실행되는 동안 다른 프로세스가 실행 가능/  하나의 쉘에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식)

$ nohup jupyter notebook &

 

참고:

https://growingarchive.tistory.com/178

 

 

 

 

 

 

리눅스 종류 몇개만 한눈에 보기

 

데비안 (Debian)

데비안 계열은 좀 더 오픈소스쪽에 가깝고 레드햇은 상용쪽에 가깝습니다. 아무래도 데비안 계열에서 파생된 배포판 중 가장 유명한 건 우분투(Ubuntu)이겠죠?. 데비안도 오래되었기 때문에 Granpa Linux 리눅스 할아버지라고 부르기도 한다 하더라고요 ㅎㅎ

데비안이 이렇게 오래되었음에도 불구하고 초보자들에게는 적합하지 않아요. 일반 사용자들이 설치하여 사용하기에는 어렵고 기술지원이나 사후관리가 어렵기 때문인 점도 있습니다.

 

데비안 버전 중 안정성에 기반을 둔 배포는, 안정성이 진짜 강하다는 강점이 있지만, 그렇기에 그에 따른 단점도 있죠 ㅎㅎ 데비안 소프트웨어는 당연히 구시대적일 수밖에 없습니다. 안정성이 높다는건 그만큼 검증된 시간을 가졌다는 거고, 빠르게 흘러가는 IT 산업에서는 그 시간동안 수많은 새로운 기능들이 출시되었다는 것을 의미하니까요. 

 

데비안 장점: 배포되고 있는 서버 리눅스 들 중 안정성이 매우 높다. 다양한 패키지 활용

목적: 데스크탑 보다는 서버에 적합

데비안 계열에 속하는 배포판:

Konoppix, Corel, Lindows, Ubuntu, Linux Mint, Elementary OS, BackTrack, Kali LInux 

 

1. 우분투 (Ubuntu) : 데비안 계열

현존하는 리눅스 배포판 중 가장 널리 쓰이고 널리 알려진 배포판. 우분투는 데비안 리눅스를 기반으로 제작된 리눅스입니다. 초보자들에게 가장 강력하게 추천되고 있는 배포판이죠.

 

레드햇 (Red Hat)

레드햇은 기업용 서버 OS로 가장 인기가 있죠! 그래서 실제 현업에서 가장 널리 사용되는 OS이기도 합니다.

예전에는 레드햇 리눅스는 유로버전과 무료버전을 모두 배포하였으나 현재 레드햇 리눅스의 의미는 상용으로 판매되는 레드햇 엔터프라이즈 리눅스(RHEL)만을 의미합니다.

기업 버전인 RHEL에 들어갈 기능을 테스트 하기 위한 용도로 배포되는 페도라가 레드햇 계열에 속하고, RHEL이 유료라 사후지원 기능을 제외하고 무료용으로 배포하는 centOS도 레드헷 계열에 속합니다.

 

레드햇 계열에 속하는 배포판:

RHEL, CentOS, Fedora, Oracle Linux, Scentific Linux, Asianux, Mandriva Linux, Mandrake 등

 

​1. 페도라 (Fedora)

"부분적으로 유료"

페도라 프로젝트를 후원함으로써 일반인들도 계속 레드햇 리눅스의 연장선에 있는 페도라 리눅스를 사용할 수 있게 했습니다. 무료인 페도라 리눅스는 상용인 RHEL에 포함될 새로운 기술을 미리 시험하는 용도로 사용됩니다. 즉 페도라 리눅스에서 안정화된 기능을 RHEL에 포함한것.

그래서 페도라는 잔버그도 많이 발생할 수 있고 오류가 있을 수도 있어요 (아무래도 신기능 테스트용으로 선보이는 거니까..) 이런 것들을 피드백받아서 개선하고 안정화시켜 RHEL에 추가하는 것

 



출처: https://crampstory.tistory.com/40 [크램프 이야기]

Microsoft Store에서 Ubuntu를 깔았는데 WSL오류가 발생하는 경우가 있다. 

wslregisterdistribution failed with error: 0x80041001

나는 이 에러를 접했고 다음과 같은 방법으로 해결했다.

powershell을 관리자 권한으로 열고 아래 명령어를 실행해보자!

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All

 

 

 

pwd print working directory - 현재 경로 출력
ls -l | grep ^d | wc -l 현재 위치에서의 폴더 개수
ls -l | grep ^- | wc -l 현재 위치에서의 파일 개수
find . -type f | wc -l 현재 폴더의 하위 파일 개수
who 각각 호스트에 로그인한 사용자 정보 / 내 접속 정보 출력
grep 파일에서 특정 문자열 검색
예를 들어 .profile 파일에서 if 라는 문자열을 검색할 때는 아래와 같이 입력

ex) grep if .profile
df 디스트 사용량 확인
clear 명령창 내용 삭제
ls 경로 확인
rm -rf dirname 디렉토리 하위에 있는거 전부다 삭제 (사용에 주의)
cp 파일, 디렉토리 복사
   
   
htop cpu core 가 어떤지 실시간 확인 가능 
du -sh ./
du -s .
해당 경로의 데이터 용량 확인 가능
tree ./ 파일 구조 리스트 보기

https://velog.io/@ovan/Linux-Linux-%EB%A7%8E%EC%9D%B4-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C

+ Recent posts