라벨이 Ubuntu인 게시물 표시

/boot 디스크 용량이 부족해서 우분투 커널 업데이트가 안되는 경우

이미지
오늘 텔레그램 bot을 만들려고 텔레그램 CLI 를 설치하려했다. 그 전에 필요한 lib 들을 설치하려는 과정에서 의존성 문제에 부딪혔다. 의존성 문제가 발생할 때 apt-get -f install을 이용하면 의존성 문제를 요령껏 해결해준다. (아닐때도 있지만) 근데 뭔가 에러가 난다. 보면 커널을 업데이트하는데 /boot 이 용량이 부족해서 난 오류다. /boot 이 꽉차있다... 사용하지 않는 커널들을 삭제해주도록 하자... 너무 빡빡하게 다 삭제하진 않고, ...-51 미만으로만 삭제하였다. /boot의 용량이 넉넉해 진 것을 알 수 있다. 다시 시도해보니까 잘 설치가 된다. 다시 부팅을 하면 3.13.0-55 버전으로 커널 업데이트가 된걸 알 수 있다. 그 다음부터 다시 원래 하려던 작업들을 하면 잘 된다.

bash 와 dash의 차이점

이미지
오늘도 역시나 뻘짓을 하였다. bash script를 짜놓고 sh a.sh 같은 식으로 실행시키니 우분투에서 sh는 dash를 기본적으로 가리키므로 dash에 의해 a.sh가 실행이 되어서 예상치 못한 결과가 나왔다. 덕분에 시간을 날렸지만 아래와 같은 사실을 알 수 있었당~   bash와 dash는 공통적으로 \(역슬래쉬) 를 특수하게 사용한다. 따라서 문자자체로서의 역슬래쉬를 표현하려면 \\을 사용해야한다.  따라서 bash에서의 결과는 상식적인 결과일 것이다. dash에서도 역슬래쉬를 표현하여면 \\를 사용해야하는 건 똑같다. 하지만 dash 에서는 큰따옴표안에서 이스케이프문자를 지원한다. 무슨 말이냐면 결론적으로 echo "\\\\" 를 해야 화면에 \이 출력되는 것이다. \\이 \로 처리되고 그렇게 모인 두개의 \\가 이스케이프문자로 인식되 \ 하나가 결국 출력되는 것이다. 이 사진은 보던지 말던지~ * 그리고 `` 보다 $() 를 사용하도록 하자! bash script가 정말 리눅스환경에서 간단간단하게 뭐 만들때 정말 좋긴한데 문법이 너무 거지같은거 같다. 어쩌면 내가 체계적으로 안배우고 그때 그때 검색해서 쓰는 식으로 익혀서 그런거일수도...