본문 바로가기
리눅스

DontBreakDebian

by 다움위키 2023. 11. 28.

데비안을 깨뜨리지 마세요!

어떤 목적에서든지 데비안 리눅스를 설치하고 나면, 시스템 관리자가 됩니다. 시스템 관리자는 알아야 할 것도 많고, 실제로 해야 할 것들도 많지만, 데스크탑으로 데비안 리눅스를 사용하면서 그런 정도로 시스템을 다룰 필요는 없습니다. 단지, 적어도 시스템이 제대로 동작해서, 하려는 작업이 계속될 수 있어야 하므로, 적어도 우리가 하려는 프로그램의 설치/제거 등에서 안정적인 방법과 위험한 방법을 구별해 둘 필요는 있어 보입니다.

한편, 일단 데비안을 설치하고 나면, 시스템에 대한 완전한 권한, 루트 권한을 갖기 때문에, 잘못된 명령으로 언제든지 시스템을 고장낼 수 있습니다. 대체로 프로그램의 설치는 루트 권한을 갖기 때문에, 잘못된 동작으로 시스템을 망가뜨릴 수 있는 행위이며, 잘못된 방식으로 프로그램의 설치는 처음에는 잘 작동하는 것처럼 보이지만, 잠재적으로 위험을 안고 있을 수 있습니다.

데비안의 주요 장점 중 하나는 수천 개의 소프트웨어 패키지를 갖고 있는 중앙 저장소입니다. 다른 운영 시스템에서 데비안으로 이전했을 때, 이전 운영 시스템에서 임의의 웹사이트에서 찾은 소프트웨어를 설치하는 데 익숙할 것이지만, 데비안에서 임의의 웹사이트에서 소프트웨어를 설치하는 것은 나쁜 습관입니다.

패키지가 존재하면 공식 데비안 저장소에서 설치하는 것이 항상 더 좋습니다. 데비안 저장소의 패키지는 잘 작동하고 제대로 설치되는 것으로 알려져 있습니다. 오직 데비안 저장소에 있는 패키지를 사용하는 것이 맬웨어와 기타 보안 위험을 묶을 수 있는 임의의 웹사이트에서 설치하는 것보다 훨씬 안전합니다.

안전한 방법

데비안은 저장소에 대부분의 필요한 프로그램들을 가지고 있지만, 설치 직후에는 오직 자유와 오픈-소스 패키지를 읽어 들이도록 설정되어 있습니다. 해당 라이선스를 갖지 않는 패키지들도 지원하는데, 그러기 위해서는 저장소에서 정보를 추가해야 합니다. 예를 들어, /etc/apt/sources.list을 아래와 같이 수정할 수 있습니다:

deb http://ftp.kaist.ac.kr/debian/ bullseye main contrib non-free

공식 백포트된 패키지 어떤 경우에는 특별한 패키지를 설치하기 위해, 현재 안정판에서 제공하는 버전보다 더 높은 버전의 패키지를 요구하기도 합니다. 그럴 때에는 일차적으로, 백포트된 패키지를 이용할 수 있습니다. 데비안은 현재 안정판 외에 다음 안정판이 될 테스팅 버전과 항상 개발 버전인 시드와 그 외 일부 패키지의 가장 최신 버전을 보유한 실험 버전이 있습니다. 데비안 패키지 개발자들이 안정판에서 필요할 것으로 예상되는 몇 개의 테스팅 패키지를 현재 안정판에서 빌드해 둔 패키지들이 저장소에 유지되고 있습니다. 이 버전은 안정판만큼 오랫동안 시험되지는 않았지만, 패키지 개발자들이 권하는 패키지들이라서 충분히 안정적이라고 생각될 수 있습니다. 아래와 같이 저장소를 추가할 수 있습니다:

deb http://ftp.kaist.ac.kr/debian/ bullseye-backports main contrib non-free

개인적인 백포트화 패키지 게다가, 만약 백포트에 존재하지 않지만, 더 높은 버전의 패키지가 필요할 경우에는 테스팅, 시드, 또는 실험 저장소에 있는 소스를 가져와서 안정판에서 빌드할 수 있습니다. 이것은 자신만의 백포트로 생각될 수 있습니다. 그러나, 이 과정은 약간의 지식이 필요하므로, 데비안 패키지 제작, 데비안 문서 등을 참조하십시오. 소스로부터 빌드 아주 특수한 경우에 데비안의 어떤 저장소에서도 배포하지 않는 패키지들이 존재합니다. 이런 패키지들은 위의 백포트를 만들어 본 경험이 있으면, 직접 데비안 패키지를 제작해 볼 수 있습니다. 그렇지 않으면 전통적인 방법으로 빌드해서 사용할 수 있고, 단지, 컴파일 후에, 개인 홈디렉토리 아래에서 실행하던지 그렇지 않으면, /usr/local 아래에 설치하는 것이 좋겠습니다. 다른 패키지들이 설치되는 디렉토리에는 전통적인 방법으로 설치하지 않는 것이 좋은데, 만약 추후에 관련 프로그램이 공식 데비안 패키지로 만들어지고 설치되면, 두 버전이 동시에 설치되는 결과이기 때문에 나쁜 결과를 낳을 수 있습니다.

추가적인 덜 안전한 방법

일부 패키지는 데비안에서 제공되지 않고, 다음의 방법으로 배포되는 패키지들이 있습니다. 이런 패키지들은 데비안 패키지 개발자에 의해 테스트되거나 검증되지 않기 때문에, 안정성 여부는 사용자의 판단에 의존합니다.

Flatpak 루트가 아닌 일반 사용자 홈 디렉토리 아래에 설치가 가능합니다. 개별 프로그램이 동작하기 위해, 시스템에 있는 패키지들을 사용하지 않으므로써 인해, 의존성 패키지들이 전부 함께 설치되어 디스크 용량을 많이 차지할 수 있습니다. Snap (package manager) 우분투를 지원하는 회사인 캐노니컬에서 개발한 앞의 flatpak과 유사한 개념의 패키지를 제공합니다. 중요 참고 사항: 많은 사용자가 Snaps를 경계합니다. 자신의 재량에 따라 사용하십시오. 자체 일정에 따라 업데이트하고 비표준 위치에 파일을 설치합니다. Snap의 명성/제한 사항을 먼저 이해하지 않고 Snap을 사용하는 것은 현명하지 않을 수 있습니다. Docker 위의 두 방법과 또 다른 형태이지만, 일반 사용자가 설치 유지하기에 쉽지 않을 수 있습니다.

불안전한 방법과 몇 가지 조언

다음에 소개할 패키지 설치 방법은 불안정한 요소를 가질 수 있어서 추천하기 않고, 더구나, 언제든지 문제가 개입될 가능성이 있어서, 안정적인 시스템을 유지하려는 분들은 하지 않는 것이 좋겠습니다. 그럼에도 불구하고 다음 방법을 시도하시는 분들은 어느 정도 시스템을 다루는 능력을 구비할 필요가 있습니다.

프랭켄데비안(FrankenDebian)을 만들지 마십시오!! 맞습니다, 프랑켄슈타인 데비안을 만들지 마십시오. 이종의 저장소에서 패키지를 설치할 수 있습니다. 예를 들어, 데비안 테스팅 저장소를 추가하고, 저장소의 우선 순위를 낮게 두고, 특정 패키지를 테스팅 저장소에서, 위의 백포트에서 설치하는 방법과 같이, 설치할 수 있습니다. Firefox#Install latest version을 보시면, 그렇게 하는 방법들이 있습니다. 이 방법의 문제는 해당 패키지가 컴파일되는 환경에서 필요한 기본 라이브러리, libc6 등의 업데이트가 이루어진다는 점입니다. 설치 시에는 문제가 없어 보이지만, 사용하면서 호환성의 문제로 동작하지 않는 패키지들이 발견될 수 있고, 나아가서 다음 버전 데비안 업데이트가 원활하지 않을 수 있습니다. 데비안 안정판과 같이 사용해서는 안 되는 저장소들 중 일부는 다음을 포함합니다:

  • 데비안 테스팅, 시드
  • 우분투, 리눅스 민트 또는 기타 파생 배포판의 저장소
  • 우분투 PPA 및 기타 저장소

예외적으로 일부 저장소는 추가될 수 밖에 없는데, 왜냐하면, Apache Cassandra와 같은 패키지는 오직 한 곳에서 배포되기 때문에, 그런 저장소는 추가해도 상관없을 것으로 보입니다. GPU 제조업체에서 제공하는 스크립트를 사용하지 마십시오!! 보통, 그래픽 드라이버는 커널 버전과 맞아야 동작합니다. 그렇기 때문에, GPU 제조업체에서 제공하는 바이너리가 특정 커널 버전에서만 동작하고, 그렇지 않을 때에는 초보자가 다루기 힘든 상황에 놓일 수 있습니다. 만약, GPU 제조업체의 독점 드라이버가 필요하면, 데비안에서 설치/작동되기 위한 문서를 참조하십시오. 새로운 버전에 대한 환상을 버리십시오!! 데비안 안정판의 패키지들은 충분히 테스트되고 버그가 수정된 버전을 포함하고 있습니다. 이 말은 최신 버전은 데비안 안정판에 거의 없음을 의미합니다. 이러다 보니, 새로운 버전이 계속 발표되면, 그것을 사용해 보고 싶은 충동이 생길 수 있습니다. 어쨌든, 버그는 항상 발견될 수 있지만, 새 버전에서만 새로운 버그와 취약점이 발생할 수 있습니다. 그럼에도 불구하고, 특정 패키지가 반드시 새로운 버전이 필요하면, 자신의 백포트를 만드십시오!! 맹복적으로 나쁜 참조를 따르지 마십시오!! 대부분의 초보자는 검색을 통해 발견되는 해결책을 맹목적으로 따라하는 경향이 있고, 더구나, 그중에서도 가장 쉬워 보이는 방법을 먼저 시도할 수 있습니다. 어떤 문서는 여러 방법 중에서 프랭켄데비안을 만드는 것을 먼저 추천하기도 합니다. 그러나, 이런 방법은 당장은 문제가 없어 보이지만, 시간이 지남에 따라 큰 문제를 야기하기도 합니다. 초보자일수록 문제가 발생했을 때, 고칠 가능성이 점점 줄어들고, 고치더라도 많은 시간을 소모할 것이므로, 먼저 올바른 방법을 찾는 데 더 많은 시간을 들이십시오. 맹목적으로 패키지를 제거하지 마십시오!! 어떤 분들은 시스템에 필요하지 패키지가 있는 것을 참지 못하거나, 어떤 문서에서 제거하라는 패키지를 생각 없이 제거하기도 합니다. 패키지의 제거 중에 반드시 필요한 패키지의 제거는 사용자에게 반드시 확인을 받습니다. 그런 패키지를 제거하면, 초보자가 감당하기 힘든 상황에 대체로 놓입니다. 패키지를 제거하기 전에 어떤 패키지가 제거되는지 확인을 하는 습관이 필요합니다. 주로 많은 패키지가 한꺼번에 제거되는 패키지는 무엇인지 확인하기 전에는 절대 제거하지 마십시오!! 좋은 메뉴얼을 읽으십시오!! 종종 튜토리얼을 읽는 것은 응용 프로그램을 설치하거나 사용하는 방법에 대한 일반적인 아이디어를 얻는 데 충분합니다. 데비안에 대한 패키지된 거의 모든 소프트웨어는 최소한 몇 가지 문서가 있습니다. 일부 문서는 다음에서 찾을 수 있습니다:

  • 데비안 문서 홈페이지 : https://www.debian.org/doc/
  • 데비안 관리자 핸드북 : https://debian-handbook.info/
  • apropos 명령은 매뉴얼 페이지를 찾는 데 도움이 됩니다.
  • 이해하지 못한 명령에 대한 매뉴얼 페이지를 읽기 위한 man 명령.
  • 일부 소프트웨어는 문서를 포함하는 별도의 <패키지 이름>-doc 패키지를 가집니다.
  • 시스템에 설치된 모든 데비안 패키지는 /usr/share/doc에 디렉토리가 있고, 종종 추가 문서와 함께 소프트웨어의 업스트림 버전과의 차이점에 대한 정보가 포함된 README.Debian 파일에 들어 있습니다.

기록을 하십시오!! 어떤 형태로든지 안정판 외의 패키지를 설치하고 있다면, 내용을 기록하십시오. 나중에 문제가 발생했을 때, 해결책의 아주 중요한 단서가 됩니다. 특히, 나중에 새로운 데비안 버전의 업그레이드 시에 중요하게 작용할 수 있습니다.