ioerror

pkg_delete 명령어 사용법 및 옵션 - BSD 계열 운영체제의 패키지 제거 명령어 본문

OS

pkg_delete 명령어 사용법 및 옵션 - BSD 계열 운영체제의 패키지 제거 명령어

반응형

pkg_delete - Package Delete

pkg_delete는 OpenBSD, NetBSD, FreeBSD 등 BSD 계열 운영체제에서 시스템에 설치된 pre-compiled(미리 컴파일된) 바이너리 패키지를 안전하게 제거하는 명령어이다. 지정한 소프트웨어 패키지를 구성하는 실행 파일, 라이브러리, 매뉴얼 페이지 등을 추적하여 삭제하다. 이 과정에서 다른 소프트웨어가 해당 패키지의 구성 요소를 의존(Dependency)하고 있는지 역방향 의존성을 검증하여 시스템의 안정성을 유지하다. 더 이상 사용되지 않고 남겨진 고립된 의존성 패키지를 자동으로 탐색하여 함께 정리하는 기능을 포함하다.

1. 명령어 용도

  • 사용가능 OS, Shell: [OpenBSD] [NetBSD] [FreeBSD (과거 버전)]
  • 시스템에서 더 이상 필요하지 않은 소프트웨어를 의존성 꼬임 없이 안전하게 완전 삭제하고자 할 때 사용하다.
# 시스템에 설치된 텍스트 편집기 vim 패키지를 찾아 안전하게 제거하다.
doas pkg_delete vim

2. 명령어 서식

pkg_delete [-acDIinnBvx] [-A arch] [-B pkg-destdir] [-D name[=value]] [-L localbase] [-p prefix] pkg-name ...

3. 명령어 옵션

  • 주요 옵션 소개 테이블
옵션 설명 사용가능 OS 및 쉘
-a 다른 패키지에서 의존하고 있지 않은 고립된(Unused/Orphaned) 패키지를 자동으로 찾아 일괄 삭제하다. [OpenBSD] [NetBSD]
-c 패키지 삭제 후 남아있는 빈 설정 디렉토리나 공유 디렉토리까지 정리하다. [OpenBSD]
-D 패키지 제거 전후에 실행되도록 설정된 내부 스크립트(Deinstallation script)의 실행을 강제로 건너뛰다. [OpenBSD] [NetBSD] [FreeBSD]
-n 실제로 패키지를 삭제하지 않고, 명령 실행 시 어떤 패키지들이 지워질지 작업 과정만 시뮬레이션하다. [OpenBSD] [NetBSD] [FreeBSD]
-v 파일 삭제 및 스크립트 실행 과정을 상세한 메시지(Verbose)로 터미널에 출력하다. [OpenBSD] [NetBSD] [FreeBSD]
-x 입력한 패키지 이름을 정규 표현식(Regular Expression)으로 인식하여 일치하는 모든 패키지를 삭제하다. [OpenBSD]
  • 명령어 옵션 사용시 결과 예시
Bash
 
# 하위 의존성으로 인해 남겨진 사용되지 않는 모든 고립 패키지를 시뮬레이션 모드로 안전하게 확인하다.
pkg_delete -an
# Update candidates: quirks-2.9 -> quirks-2.9 (ok)
# Check dependencies: ok
# Would delete libxml-2.9.12p0 (unused)
# Would delete jpeg-9dp0 (unused)
# Cleaned up successfully (simulated)
  • Check dependencies: 역방향 의존 관계를 검사하여 다른 패키지에 영향이 없는지 확인하다.
  • Would delete ... (unused): -a 및 -n 옵션에 의해 실제 삭제는 유보하되, 다른 소프트웨어에서 쓰지 않는 고립 패키지임을 식별하다.
  • Cleaned up successfully (simulated): 시스템 환경의 실제 변경 없이 모의 검증 절차가 완료되었음을 나타내다.

4. 명령어 특이사항(유의사항)

  • 역방향 의존성(Shared Dependency) 경고: 특정 공유 라이브러리나 패키지를 다른 활성 소프트웨어가 여전히 참조하고 있다면 pkg_delete는 삭제를 거부하고 에러를 발생시키다. 이를 강제로 무시하고 지우면 연관된 다른 프로그램들이 구동 불가능한 상태에 빠질 수 있으므로 구조를 먼저 파악해야 하다.
  • 수동 생성 파일의 잔류: 소프트웨어 실행 도중 사용자가 수동으로 생성한 설정 파일이나 데이터베이스, 로그 파일 등은 패키지 명세서(Packing List)에 등록되어 있지 않으므로 pkg_delete를 수행하더라도 디렉토리에 그대로 남게 되다. 완벽한 초기화를 원할 때는 삭제 완료 메시지 확인 후 해당 경로를 수동으로 정리해야 하다.

관련 명령어들

  • pkg_add : 바이너리 패키지를 시스템에 새로 설치하거나 최신 버전으로 업데이트하다.
  • pkg_info : 현재 시스템에 설치된 모든 패키지의 목록 및 상세 정보를 조회하다.
  • pkg_check : 패키지 레지스트리와 실제 파일 시스템 간의 정합성 오류를 검사하다.

https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference

 

UNIX & Linux Command Reference

유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하

ioerror.tistory.com

 

 

반응형
Comments