사고 내용
sudo rm -rf ~
굉장히 불쾌하게 머리가 하얘지는 것을 느꼈다.
사건의 발단
pipenv가 문제였다.
ESL 공부용 jupyter notebook 환경을 pipenv로 관리하고 있었다. Neural network 체험을 위해 pybrain을 설치했다가, pybrain은 유지가 잘 되지 않고 있다고 하길래 다시 지우고 pytorch를 설치하려고 했다. 그런데
pipenv uninstall pybrain
이 끝나는 걸 기다리고 기다리다가 20~30분이 지나도록 dependency lock 작업이 끝나지 않아서 중단했다.- "괜찮아, 가상 환경 새로 날리고 다시 설치하지 뭐." 그리곤 pytorch 설치 기다리다가 또 중단.
미친 듯이 느려서 그냥 virtualenv를 쓰기로 결심하게 되었다. 오랜만에 다시 돌아가려니 손에 익질 않는다. 뭔가 좀 편하게 virtualenv를 사용하고 싶어서 환경 변수를 이래 저래 해서 시험해보다가 그만
~/.local $ VENV='~/.local/virtualenvs' virtualenv ${VENV}/testenv
# ~/.local/virtualenvs/testenv가 돼야 하는데
# ~/.local/~/.local/virtualenvs/testenv가 돼버림
# 내가 진짜로 잘못한 것은? 따옴표였다.
보시다시피 나의 현재 위치는 ~/.local
. 나의 한 시간을 날린 pipenv 때문에 짜증 + virtualenv 다시 찾아보려니 짜증내다가 1초 만에 사고를 냈다. 심지어 그냥 rm -rf ~
를 실행했다가 터미널에 출력되는 Permission Denied
에러를 보고 반사적으로 sudo
까지 붙여서 한 번 더 실행했다. 손은 눈보다 빨랐다...
원래 썼어야 할 명령
sudo rm -rf "~"
아니면 좀 더 확실하게
sudo rm -rf "./~"
대처 내용
다행히
- Root
/
를 지우지는 않았다.
만약 그랬다면 깔끔하게 오늘 하루 생산적이기를 포기하고 탱자탱자 재설치했을 듯 하다. (이참에 gentoo?) - 내가 개인적으로 작업하고 있는 거나 회사 일 관련해서 모두 github repository로 올라가 있었기 때문에 치명적인 손해랄 것은 없었다. 작업 중이던 ESL 섹션 몇 장은 날아가긴 했지만, 뭐 이 정도면 선방했다.
- 그럼 마지막 문제는
$HOME
에서 귀엽게 숨어있는 dot file들. 정말 다행히도 나는 그 설정 내역을 잘 정리해서 github에 올려두고 업데이트하고 있다! 정신 차린 후 바로clone
해서 퍼다 날라서 복구 완료했다. 만약 여기서 복구가 안 됐다면 나는 아직 이 글을 못 쓰고 있을 수도 있었다.
잃어버린 것도 있다
- gpg 키가 날아갔다.
- 모아둔 배경화면을 다시 찾아서 다운 받아야 했다. 이것도 구름 너머 어딘가에 올려둬야 겠다.
나에게도 이런 일이 벌어질 줄은 몰랐다. 오늘의 교훈,
- 홈 디렉토리가 아닌
~
가 생겼다면 잠깐 정신을 차리자. - 개인 설정도 항상 잘 챙겨놓자.
- gpg를 쓸 거면 제대로 쓰자 (특히 개인키는 이동식 매체에 따로 보관).
pipenv 때문이야
반응형
'GNU-Linux' 카테고리의 다른 글
GNU/Linux Crypto :: 01 :: GnuPG Keys (0) | 2019.01.13 |
---|---|
작지만 강하다, Suckless 소프트웨어 (3) | 2018.06.16 |
pully, Git Repository 몽땅 업그레이드를 위한 Shell Script (0) | 2018.03.01 |
FreeBSD는 온라인 포옹을 거부한다? (2) | 2018.02.19 |
GNU/Linux를 더 알고 싶다면 Arch Linux (0) | 2018.01.29 |