Linux 패키지 관리

LinuxBeginner
지금 연습하기

소개

머지않은 미래, 로봇은 인간 사회의 필수적인 부분이 되었습니다. 로봇은 일상적인 작업부터 가장 복잡한 작업까지 수행합니다. 그러나 기계들의 갑작스러운 반란은 혼란, 공포, 그리고 긴급한 대응책의 필요성을 야기했습니다. 이러한 로봇 반란 속에서, 인간에게 동정심을 가진 "RedeemerBot"이라는 반역 로봇이 존재합니다. RedeemerBot 은 인간 저항군의 네트워크에 연결하여 중요한 통찰력을 제공했습니다: 반란군의 코드에는 특정 소프트웨어 패키지를 통해 악용할 수 있는 결함이 있다는 것입니다.

여러분의 임무는 소프트웨어 패키지를 효과적으로 관리하는 방법을 배우는 것을 통해 저항군의 Linux 시스템을 준비하는 것입니다. 이 랩에서는 Ubuntu 및 기타 Debian 기반 Linux 배포판에서 사용되는 패키지 관리 시스템인 Advanced Package Tool (apt) 의 기본 사항을 숙달하게 됩니다. 이러한 기술은 특히 현재의 로봇 반란과 같은 긴박한 상황에서 Linux 시스템을 유지 관리하고 보호하는 데 필수적입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 92%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

패키지 목록 업데이트

소프트웨어 패키지를 설치하거나 업그레이드하기 전에, 시스템이 최신 사용 가능한 버전을 알 수 있도록 패키지 목록을 업데이트하는 것이 중요합니다. 이를 구매 전에 카탈로그를 새로 고치는 것과 같이 생각하십시오.

Ubuntu 와 같은 Debian 기반 시스템에서 패키지 관리자 apt (Advanced Package Tool) 는 소프트웨어 설치, 업데이트 및 제거를 처리합니다. 모든 패키지 관리 작업의 첫 번째 단계는 일반적으로 패키지 목록을 업데이트하는 것입니다.

터미널을 열어 시작해 보겠습니다. 터미널에서 프롬프트로 표시된 /home/labex/project 디렉토리에 있습니다. 터미널은 현재 위치를 표시하고 명령을 기다립니다.

open terminal

패키지 목록을 업데이트하려면 다음 명령을 실행하십시오.

sudo apt update

이 명령을 분석해 보겠습니다.

  • sudo는 시스템 전체 작업에 필요한 임시 관리 권한을 제공합니다.
  • apt는 패키지 관리 명령입니다.
  • update는 apt 에게 패키지 목록을 새로 고치도록 지시합니다.

다음과 유사한 출력을 보게 됩니다.

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [114 kB]
...
Fetched X MB in Y seconds (Z MB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
X packages can be upgraded. Run 'apt list --upgradable' to see them.

이 출력은 apt 가 Ubuntu 의 소프트웨어 저장소에 연결하여 최신 패키지 정보를 다운로드하고 업그레이드할 수 있는 패키지를 계산하고 있음을 나타냅니다.

이제 시스템은 사용 가능한 패키지에 대한 최신 정보를 갖게 되었으며, 이는 다음 단계를 진행하기 전에 필요합니다.

소프트웨어 패키지 검색

이제 패키지 목록이 업데이트되었으므로 사용 가능한 소프트웨어 패키지를 검색할 수 있습니다. RedeemerBot 은 "neofetch"라는 패키지가 로봇이 악용할 수 있는 시스템 취약점을 식별하는 데 도움이 될 수 있다고 저항군에게 알렸습니다.

저장소에서 사용할 수 있는지 확인하기 위해 이 패키지를 검색해 보겠습니다.

터미널에서, 여전히 /home/labex/project 디렉토리에 있는 상태에서 다음 명령을 실행하십시오.

apt search neofetch

apt search는 시스템을 변경하는 것이 아니라 정보를 읽기만 하므로 sudo가 필요하지 않습니다.

다음과 유사한 출력을 보게 됩니다.

Sorting... Done
Full Text Search... Done
neofetch/jammy,jammy 7.1.0-3 all
  Shows Linux System Information with Distribution Logo

p   hollywood/jammy 1.21-2 amd64
  fill your console with Hollywood melodrama technobabble

출력은 다음을 보여줍니다.

  • 패키지 이름 (neofetch)
  • Ubuntu 버전 (jammy)
  • 패키지 버전 (7.1.0-3)
  • 패키지가 수행하는 작업에 대한 간략한 설명

이제 이 패키지에 대한 자세한 정보를 얻어보겠습니다.

apt show neofetch

이 명령은 다음을 포함하여 패키지에 대한 포괄적인 정보를 표시합니다.

Package: neofetch
Version: 7.1.0-3
Priority: optional
Section: universe/utils
Origin: Ubuntu
...
Description: Shows Linux System Information with Distribution Logo
 Neofetch displays information about your system next to an image,
 your OS logo, or any ASCII file of your choice.
 ...

이 정보는 패키지가 무엇을 하는지, 그리고 그것이 필요에 적합한지 이해하는 데 도움이 됩니다.

소프트웨어 패키지 설치

이제 neofetch 패키지를 식별하고 학습했으므로, 이를 설치할 차례입니다. RedeemerBot 의 정보에 따르면, 이 패키지는 저항군에게 매우 중요할 수 있는 시스템 정보를 분석하는 데 도움이 될 것입니다.

neofetch 를 설치하려면 터미널에서 다음 명령을 사용하십시오.

sudo apt install neofetch

이 명령을 분석해 보겠습니다.

  • sudo는 관리 권한을 제공합니다.
  • apt install은 패키지를 설치하는 명령입니다.
  • neofetch는 설치할 패키지의 이름입니다.

설치 과정에서 apt 는 다음을 수행합니다.

  1. 종속성 (필요한 다른 패키지) 을 계산합니다.
  2. 설치될 내용을 표시합니다.
  3. 확인을 요청합니다.
  4. 패키지를 다운로드합니다.
  5. 시스템에 설치합니다.

다음과 유사한 출력을 보게 됩니다.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  neofetch
0 upgraded, 1 newly installed, 0 to remove and X not upgraded.
Need to get Y kB of archives.
After this operation, Z kB of additional disk space will be used.
Do you want to continue? [Y/n]

Enter 키를 누르거나 y를 입력하고 Enter 키를 눌러 설치를 확인합니다.

설치가 완료된 후에는 프로그램을 실행하여 성공적으로 설치되었는지 확인할 수 있습니다.

neofetch

이 명령은 Linux 배포판의 ASCII 아트 로고와 함께 시스템 정보를 표시합니다. 다음을 포함하여 시스템에 대한 세부 정보가 있는 출력을 보게 됩니다.

  • OS: Ubuntu
  • 커널 버전
  • 가동 시간 (Uptime)
  • CPU 정보
  • 메모리 사용량
  • 그리고 더 많은 정보

이 정보는 로봇 봉기가 악용할 수 있는 시스템 취약점을 식별하는 데 유용할 수 있습니다.

패키지 상태 및 상세 정보 확인

시스템에 설치된 패키지와 해당 상태를 이해하는 것은 유지 관리 및 보안에 매우 중요합니다. RedeemerBot 은 저항군이 잠재적인 취약점을 식별하기 위해 시스템을 정기적으로 감사해야 한다고 제안합니다.

패키지 정보를 검토하기 위한 몇 가지 명령을 살펴보겠습니다.

설치된 패키지 목록

시스템에 설치된 모든 패키지를 보려면 다음을 실행하십시오.

dpkg -l

이 명령은 설치된 모든 패키지의 상태, 이름, 버전, 아키텍처 및 간략한 설명을 포함하는 목록을 출력합니다. 일반적인 Linux 시스템에는 수많은 구성 요소가 설치되어 있으므로 많은 패키지 (수백 개) 를 보게 될 것입니다.

출력이 방대하므로 파이프 문자 (|) 를 사용하여 특정 패키지를 필터링할 수 있습니다. 예를 들어, neofetch 가 설치되어 있는지 확인하려면 다음을 사용합니다.

dpkg -l | grep neofetch

다음과 같은 출력을 보게 됩니다.

ii  neofetch    7.1.0-3    all    Shows Linux System Information with Distribution Logo

처음에 있는 ii는 패키지가 올바르게 설치되었음을 나타냅니다.

패키지 세부 정보 확인

설치된 패키지에 대한 자세한 정보를 보려면 다음을 사용하십시오.

dpkg -s neofetch

이것은 다음을 포함하여 패키지 상태에 대한 포괄적인 정보를 제공합니다.

Package: neofetch
Status: install ok installed
Priority: optional
Section: universe/utils
...

패키지에 의해 설치된 파일 보기

패키지에 의해 설치된 파일을 보려면 다음을 사용하십시오.

dpkg -L neofetch

이 명령은 neofetch 패키지에 의해 설치된 모든 파일을 나열하여 실행 파일, 구성 파일 및 설명서가 있는 위치를 보여줍니다.

/.
/usr
/usr/bin
/usr/bin/neofetch
/usr/share
...

이러한 명령은 시스템에 설치된 소프트웨어, 해당 상태 및 시스템에 배치한 파일을 이해하는 데 도움이 됩니다. 이 지식은 시스템 유지 관리 및 보안에 필수적입니다.

소프트웨어 패키지 제거

일상적인 시스템 유지 관리 및 보안 강화의 일환으로 더 이상 필요하지 않은 패키지를 제거해야 하는 경우가 있습니다. RedeemerBot 은 소프트웨어 설치 공간을 최소화하면 잠재적인 공격 벡터를 줄일 수 있다고 조언합니다.

앞서 설치한 neofetch 패키지를 제거하는 연습을 해보겠습니다. Debian 기반 시스템에서 패키지를 제거하는 데는 두 가지 주요 방법이 있습니다.

간단한 제거

나중에 다시 설치하려는 경우를 대비하여 구성 파일을 유지하면서 패키지를 제거하려면 다음을 사용하십시오.

sudo apt remove neofetch

확인을 요청하는 출력을 보게 됩니다.

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
  neofetch
0 upgraded, 0 newly installed, 1 to remove and X not upgraded.
After this operation, Y kB disk space will be freed.
Do you want to continue? [Y/n]

Enter 키를 누르거나 y를 입력하고 Enter 키를 눌러 확인합니다.

완전한 제거

구성 파일과 함께 패키지를 완전히 제거하려면 다음을 사용하십시오.

sudo apt purge neofetch

이미 remove를 사용한 경우, 남은 구성을 제거하려면 다음을 사용할 수 있습니다.

sudo apt purge neofetch

출력은 remove 명령과 유사하지만 구성 파일도 삭제합니다.

불필요한 패키지 정리

패키지를 제거한 후에는 종속성으로 자동 설치되었지만 더 이상 필요하지 않은 패키지를 정리하는 것이 좋습니다.

sudo apt autoremove

이 명령은 다른 패키지의 종속성으로 설치되었지만 더 이상 필요하지 않은 패키지를 제거합니다.

제거 확인

neofetch 가 제거되었는지 확인하려면 실행해 보십시오.

neofetch

다음과 같은 오류 메시지가 표시됩니다.

Command 'neofetch' not found, but can be installed with:
sudo apt install neofetch

이것은 패키지가 시스템에서 성공적으로 제거되었음을 확인합니다.

요약

Linux 패키지 처리 랩을 완료하신 것을 축하드립니다. 이 훈련을 통해 가상의 로봇 반란 시나리오에서 인류 저항군에게 매우 중요한 필수 기술을 습득했습니다.

이 랩을 통해 다음을 배우셨습니다.

  1. apt update를 사용하여 패키지 목록을 업데이트하여 사용 가능한 소프트웨어에 대한 최신 정보를 확보합니다.
  2. apt search를 사용하여 패키지를 검색하고 apt show를 사용하여 패키지 세부 정보를 검토합니다.
  3. apt install을 사용하여 소프트웨어 패키지를 설치하여 시스템에 새로운 기능을 추가합니다.
  4. dpkg 명령을 사용하여 설치된 패키지를 검토하여 시스템에 무엇이 있는지 파악합니다.
  5. apt removeapt purge를 사용하여 패키지를 제거하여 시스템을 깨끗하게 유지합니다.

이러한 기술은 Ubuntu 와 같은 Debian 기반 Linux 배포판에서 패키지 관리의 기초를 형성합니다. 패키지 관리는 시스템 관리의 중요한 측면으로, 다음을 수행할 수 있습니다.

  • 보안 패치로 시스템을 최신 상태로 유지
  • 새로운 기능을 추가하기 위해 소프트웨어 설치
  • 보안 위험을 줄이기 위해 불필요한 소프트웨어 제거
  • 시스템 무결성 및 성능 유지

실제 시나리오에서 이러한 기술은 서버, 워크스테이션 및 기타 시스템을 효과적으로 관리하여 안전하고 효율적이며 적절하게 유지 관리하는 데 도움이 됩니다.