Raspbian 패키지 업그레이드 (apt-get upgrade) 오류

2016. 9. 4. 15:05

쉽게 생각했던 설치된 패키지들의 업그레이드 시 발생한 오류 해결 경험을 공유합니다.


apt-get (Advanced Packaging Tool)은 리눅스 패키지를 관리하는 매우 편리한 툴입니다

이 툴 덕분에 설치된 패키지들의 업그레이드는 매우 쉬운 두 명령어의 조합으로 가능하죠.


apt-get은 /etc/apt/sources.list 에 패키지의 index를 관리합니다.

index는 사용하고 있는 페키지와 버젼 정보 등을 담고 있는데요.

아래 명령을 통해 index정보를 업데이트 할 수 있습니다.


sudo apt-get update


index 정보가 업데이트 되었으므로 이를 바탕으로 패키지를 업그레이드합니다.


sudo apt-get upgrade


보통은 위 두 명령어로 간단하게 리눅스 패키지들의 업데이트가 가능한데요.

저는 아래와 같은 unmet dependencies 라는 오류에 부딪혔습니다.


apt-get upgrade 오류: unmet dependencies(libperl, perl)


안내 문구에는 -f 라는 옵션을 사용하면 해결될 것처럼 보입니다.

You might want to run ~ : might는 상당히 조심스러운 권고를 의미합니다.

-f 라는 옵션은 'Force(강제)'를 의미하는 것으로 위험성을 내포하기 때문인데요.

git과 같은 형상관리툴에서 쉽게 -f를 사용하다가 혼난 경험이 있습니다.

하루 고생해서 작성한 코드를 날려먹었죠. (심지어 다른 분의 코드도... ㅜ)

그 이후에는 -f 라는 옵션은 최후의 수단으로만 사용합니다.

-f 쓰기 싫다는 사설이 길었네요.


그 아래 오류의 원인에 대한 자세한 설명이 나옵니다.

unmet dependencies 라는 오류입니다.

현재 설치된 패키지 중 libperl5.20과 perl 패키지에 오류가 났네요.

오류를 보면 두 패키지가 의존하고 있는 패키지들 버젼이 낮기 때문임을 알 수 있습니다.

아래 명령을 이용하여 의존 패키지들을 수동으로 업데이트 해주면 오류가 해결됩니다.


apt-get download { 다운로드할 패키지 명 }

sudo dpkg -i { 다운로드 된 패키지 deb 파일 명 }


perl-base 패키지 수동 다운로드 및 업데이트


저의 경우 perl-base와 perl-modules를 위와 같이 설치하였습니다.

그 이후에 정상적으로 모든 패키지들의 업데이트를 완료할 수 있었죠.

무서운 -f 옵션을 사용하지 않구요.


최신 버젼이 늘 좋은 것은 아니지만 꾸준한 업데이트는 장비에 대한 애정입니다. ^^

TechTrip IT Tech/RaspberryPi

라즈베리파이를 이용하여 HP 유선 프린터 무선으로 사용하기

2016. 6. 26. 22:47

프린터 하나 있으면 좋겠다 싶어 현X 카드 포인트로 프린터를 구입했습니다.

하지만 유선 프린터라는 것이 의외로 불편했습니다.

2대의 노트북을 사용하면서 출력할 때마다 연결해서 쓰는게 귀찮았습니다.

그렇다고 노트북을 늘 켜두고 공유하기에는 왠지 전력이 아깝기도 하구요.


라즈베리파이(Raspberry Pi)로 무선 프린팅 환경을 만들어보자는 결심을 했습니다.

라즈베리파이는 저전력이므로 늘 켜놓아도 전력 소비가 덜하니까요.

게다가 두 대의 노트북이 더 이상 프린터에 묶이는 일도 없습니다.

프린터를 다시 사는 것 보다도 싸구요.


몇 가지 난관이 있긴 했지만, 라즈베리파이를 이용하여 무선 프린터를 사용하고 있습니다.

무선 환경을 위해 준비해야할 사항을 요약하면 아래와 같습니다.


1. 라즈베리 파이에 운영체제(Raspbian) 설치

2. CUPS(Common Unix Printing System) 설치

3. 프린터 드라이버 설치

4. CUPS IPP 공유 설정

5. Window에서 IPP 프린터 세팅


1. 라즈베리 파이에 운영체제 설치

아래의 라즈베리 파이 사이트를 따라하면 쉽게 설치 가능합니다.

https://www.raspberrypi.org/help/noobs-setup/


2. CUPS 설치

리눅스 터미널에서 아래와 같은 명령어를 통해 쉽게 설치가 가능합니다.

sudo apt-get install cups


3. 프린터 드라이버 설치

CUPS의 기본 프린터 드라이버 목록에 사용하는 프린터가 있다면 생략 가능합니다.

하지만 저의 프린터 (HP Deskjet 2645)는 불행히도 아니었습니다.

아래 링크에서 HP 프린터의 리눅스 드라이버 설치파일 다운로드가 가능합니다.

http://hplipopensource.com/hplip-web/gethplip.html/


다만 윈도우에 익숙한 저로서는 리눅스 드라이버 설치에 어려움이 좀 있었는데요.


첫째로 파일 실행 권한입니다.

다운받은 파일을 실행하려고 하는데, 실행이 안됩니다.

권한이 없기 때문이죠. 

아래와 같은 command로 먼저 권한을 부여해주어야 합니다.

chmod 750 hplip-3.16.5.run (user에게 모든 권한, 그룹에 읽기 실행 권한 부여)


둘째로 배포판에 대한 것이었습니다.

리눅스는 윈도우에 비해 많은 버젼이 있습니다. (Ubuntu, CentOS, RedHat...등등)

물론 설치 파일에서 자동으로 detect 해주지만, 사용자에게 확인을 요구합니다.

라즈베리 파이 운영체제인 Raspbian은 어떤 버젼일까요?

아래와 같은 command를 통해 확인이 가능합니다.

grep . /etc/*-release


Raspbian 운영체제 정보 확인


위 이미지에서 보시다시피 debian으로부터 파생된 버젼 임을 알 수 있습니다.

여자처차 다운로드 받은 드라이버 설치 파일을 실행하여 드라이버 설치를 완료하였습니다.


4. CUPS 설정

vi나 nano와 같은 txt 편집툴을 이용하여 CUPS 설정 파일을 손봐줘야 합니다.

원격에서 CUPS 서버가 보이도록 하는 건데요.

설정 파일의 위치는 /etc/cups/cupsd.conf 입니다.

아래 이미지의 노란 글씨 부분을 추가해주어야 합니다.

Listen 하는 IP Address는 물론 라즈베리가 연결된 IP 겠죠?

아래 Allow의 IP Address는 연결하고자 하는 PC들의 IP 대역을 추가해주시면 됩니다.


CUPS 설정파일 편집


로컬호스트 혹은 IP주소에 631 포트로 접근하면 CUPS 웹 인터페이스 접속이 가능합니다.

Administration 탭의 Add Printer를 이용하여 사용하고자 하는 프린터를 쉽게 추가할 수 있습니다.

적절한 프린터 이름과 프린터 드라이버를 선택하고 버튼을 클릭하면 완료됩니다. 


CUPS 웹인터페이스


우측의 Share Printer connected to this system 옵션과 그 아래 옵션을 선택합니다.

이렇게 설정하면 다른 컴퓨터에서 프린터를 이용할 수 있습니다.


5. Window에서 IPP 프린터 세팅

제어판의 '하드웨어 및 소리'의 '장치 및 프린터'에 가서 '프린터 추가'를 클릭합니다.


윈도우 제어판의 프린터 추가


위와 같이 라즈베리 파이의 IP와 프린터 이름을 입력하고 다음을 클릭합니다.

적절한 프린터 드라이버를 선택하고 완료하면 원격으로 (같은 무선 AP에 접속) 출력 가능합니다.


찾아보면 자세한 레퍼런스 들이 많아 생각보다 수월하게 작업이 가능합니다.

아래 제가 참조한 사이트 링크 남깁니다.


참조:

http://hplipopensource.com/hplip-web/index.html

https://wiki.archlinux.org/index.php/CUPS/Printer_sharing

http://www.makeuseof.com/tag/make-wireless-printer-raspberry-pi/

'IT Tech > RaspberryPi' 카테고리의 다른 글

Raspbian 패키지 업그레이드 (apt-get upgrade) 오류  (1) 2016.09.04

TechTrip IT Tech/RaspberryPi