FreeBSD 12에서 Pkg 패키지 관리자를 사용하는 방법

소개

FreeBSD는 최신 서버, 데스크탑 및 임베디드 플랫폼에 사용되는 오픈 소스 Unix와 유사한 운영 체제입니다. Netflix, Yahoo !, WhatsApp, BBC 및 Sony와 같은 거인은 FreeBSD를 어떤 형태로 사용합니다. FreeBSD 시스템은 Linux만큼 널리 알려져 있지 않습니다. Linux는 수년 동안 데스크탑에 집중 해 왔으며 FreeBSD 프로젝트는 더 많은 서버 기반이되어 왔습니다.

이 안내서에서는 FreeBSD 12의 패키지 관리에 대해 배웁니다.

포트 대 패키지

FreeBSD에는 Ports Collection 또는 Ports 를 통해 소프트웨어를 설치하고 관리하기 위해 사전 구성된 패키지 를 통해 애드온 소프트웨어를 설치하는 두 가지 방법이 있습니다.

포트는 FreeBSD에 추가 소프트웨어를 구축하기위한 시스템입니다. Ports를 사용하면 소프트웨어 공급 업체가 제공 한 원시 소스 코드로 시작하여 원하는 방식으로 소프트웨어를 빌드하여 필요한 기능을 활성화 및 비활성화 할 수 있습니다.

패키지는 사전 컴파일 된 소프트웨어이며, 포트 관리자가 가장 다양한 사람들에게 가장 유용하다고 생각하는 옵션을 사용하여 쉽게 구축 할 수 있도록 패키지에 묶는 옵션을 사용하여 포트를 구축 한 결과입니다. 패키지를 사용하면 애드온 소프트웨어를 신속하게 설치, 제거 및 업그레이드 할 수 있습니다. FreeBSD의 패키징 시스템을 package 또는 라고 합니다pkg . 패키지 정보는 패키지 데이터에 대해 쿼리 할 수있는 SQLite 데이터베이스에 저장됩니다.

FreeBSD 패키지 관리의 또 다른 중요한 점은 패키지 바이너리의 위치입니다. 패키지는 아래 /usr/local에 바이너리를 설치 하며 대부분의 구성 파일은 /usr/local/etc대신에 종료됩니다 /etc. 당신이 리눅스 세계에서 온다면 이것은 매우 드문 일입니다.

FreeBSD 패키지 관리자 pkg

기존 FreeBSD 패키지 관리 도구의 차세대 대체품은 pkg입니다. 바이너리 패키지를보다 빠르고 쉽게 처리 할 수있는 많은 기능을 제공 pkg하는 것이 FreeBSD의 기본 시스템에 포함되지 않은 소프트웨어를 설치하는 가장 쉬운 방법입니다. 패키지 설치, 제거 및 조사와 같은 패키지의 거의 모든 작업에 사용할 많은 하위 명령이 포함 된 단일 프로그램입니다. 모든 패키지 작업 및 변경은로 또는를 root통해 실행해야합니다 sudo.

curlFreeBSD에 패키지를 설치하는 방법은 다음과 같습니다 .

pkg install curl

소프트웨어를 설치할 때 질문 -y을 피하기 위해 명령을 Proceed with this action? [y/N]:제공하거나 pkg항상 -y구성 파일에서 가정 하도록 구성 할 수 있습니다 .

패키지를 제거하려면 다음을 사용하십시오 delete.

pkg delete curl

보시다시피, 매우 간단하고 직관적입니다.

사용 pkg help가능한 부속 명령에 대한 빠른 참조를 위해 사용하거나 pkg help <subcommand>특정 부속 명령에 대한 매뉴얼 페이지를 표시하십시오.

pkg help
pkg help install
pkg help delete

설치 pkg

FreeBSD의 기본 버전은 pkg패키지 관리자가 설치되어 제공 되지 않습니다 . 패키지를 처음 설치하려고 pkg하면 패키지 관리 도구를 설치하라는 메시지가 표시됩니다. 예를 들어, 새로운 FreeBSD에 설치하려는 첫 번째 패키지가 wget터미널이라고 가정하면 터미널에 다음과 같은 프롬프트가 나타납니다.

The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y

충돌 Y하고 ENTER패키지 관리 도구 설치가 시작됩니다. 설치가 완료되면 설치하려는 초기 소프트웨어 패키지 ( wget)가 설치됩니다.

다른 패키지를 추가하지 않고을 실행하여 패키징 시스템을 자체적으로 설치할 수도 있습니다 pkg bootstrap. 또한 pkg자체 및 기타 패키지를 설치하고 업데이트하는 방법을 알고 있습니다.

참고 : Vultr 인스턴스는 pkg기본적으로 설치되므로 따로 설치할 필요가 없습니다.

구성 pkg

pkg프로그램은 각 옵션에 많은 옵션이있어 유연성이 뛰어납니다. 당신은 사용자 정의하지만, 설정할 수 있습니다에 대한 시스템 전체 구성 파일 대부분의 프로그램에 대한 일관된 동작 pkg에 위치한 /usr/local/etc/pkg.conf.

파일에 대한 주석 처리 된 기본값이 포함되어 있습니다 pkg. 해당 파일을 읽으면 pkg동작 에 대해 많은 것을 배울 수 있습니다 . 구성은 UCL (Universal Configuration Language)로 작성되었으며 주석 처리 된 구성 옵션이 많고 별명이 많이 있습니다. 변수는 정수, 문자열 또는 부울 값으로 설정할 수 있습니다.

#PKG_DBDIR = "/var/db/pkg";
#PKG_CACHEDIR = "/var/cache/pkg";
#PORTSDIR = "/usr/ports";
#INDEXDIR = "";
#INDEXFILE = "INDEX-10";        # Autogenerated
#HANDLE_RC_SCRIPTS = false;
#DEFAULT_ALWAYS_YES = false;
#ASSUME_ALWAYS_YES = false;
. . .

에서 pkg하위 명령에 대한 별칭을 정의 할 수 있습니다 pkg.conf. 하단에 pkg.conf이라고 표시된 섹션이 ALIAS있습니다. 복잡한 명령을 반복해서 실행하면 별칭을 추가해야합니다.

파일 형식 및 옵션에 대한 자세한 내용은 pkg.conf(5)매뉴얼 페이지를 참조하십시오.

man pkg.conf

패키지 찾기

패키지 관리자가 설치되었으므로 패키지를 설치할 수 있습니다. sys-admin 인 경우 다른 운영 체제가 동일한 소프트웨어의 패키지 버전에 다른 이름을 할당한다는 사실에 익숙합니다. 예를 들어 FreeBSD의 Apache 웹 서버용 패키지는 다른 Linux 배포판의 패키지화 된 Apache와 이름이 완전히 다릅니다. 따라서 무엇이든 설치하기 전에 설치하려는 패키지 이름이 무엇인지 파악해야합니다.

FreeBSD 프로젝트는 공용 저장소에 여러 패키지 세트를 제공하며 며칠마다 업데이트됩니다. 현재 25,000 개가 넘는 패키지가 있습니다.

예를 들어 Apache 웹 서버를 검색해 보겠습니다.

pkg search apache
# apache24-2.4.38                Version 2.4.x of Apache web server

apache이름에 모든 패키지가 있습니다. 긴 목록이 반환되지만 찾고자하는 것은 apache24패키지입니다. 모든 패키지에 대한 간단한 설명이 있습니다. 설치할 패키지를 결정할 때 도움이되지만 항상 간단한 것은 아닙니다.

일부 검색은 수백 개의 결과를 생성 할 수 있습니다. 검색 결과를 다듬거나 조정하려면 다른 명령 행 옵션을 사용해야합니다. 상담 호 pkg-search매뉴얼 페이지 나 도움말 페이지를 pkg help search일반적인 검색 옵션에 대해 자세히 알아 봅니다.

패키지가 실제로 원하는지 확실하지 않은 경우 다음 명령을 사용하여 패키지의 세부 사항을 찾을 수 있습니다.

pkg search -R apache24

# name: "apache24"
# origin: "www/apache24"
# version: "2.4.38"
# comment: "Version 2.4.x of Apache web server"
# maintainer: "[email protected]"
# www: "https://httpd.apache.org/"
# abi: "FreeBSD:12:amd64"
# arch: "freebsd:12:x86:64"
# prefix: "/usr/local"
# . . .
# . . .

이 명령은 패키지에 대한 유용한 정보를 많이 제공합니다.

패키지 설치

소프트웨어를 설치하려면 install하위 명령과 설치할 패키지 이름을 사용하십시오.

pkg install apache24

당신이 패키지를 설치하면 pkg install, pkg로컬 패키지 카탈로그를 참조합니다, 다음에 저장소에서 요청 된 패키지를 다운로드합니다 pkg.FreeBSD.org. 패키지가 설치되면에 보관 된 SQLite 데이터베이스에 등록됩니다 /var/db/pkg/local.sqlite. 이 파일을 삭제하지 않도록주의하십시오. 그렇지 않으면 시스템에 설치된 패키지가 추적되지 않습니다. 소프트웨어에 종속성이있는 경우 pkg이를 파악하여 기본 패키지와 함께 설치합니다. 종속성으로 설치된 패키지를 자동 패키지 라고 합니다.

패키지 관리자는 인터넷을 통해 패키지를 다운로드하여 디스크의 한 위치에 저장할 수 있습니다. 이를 통해 다른 시간에 설치할 수 있습니다. pkg fetch명령을 사용하여 패키지를 설치하지 않고 다운로드 할 수 있습니다 .

pkg fetch nginx

이 명령은 의존성없이 Nginx 만 가져옵니다. -d플래그를 사용 하여 이름 지정된 패키지뿐만 아니라 모든 종속성을 가져올 수 있습니다 .

pkg fetch -d nginx

패키지는 패키지 캐시 디렉토리로 다운로드됩니다 /var/cache/pkg. 패키지를 가져온 후에는 pkg이 디렉토리에 패키지 를 추가합니다. 파일을 나열하여 파일 내용을 확인할 수 있습니다.

ls /var/cache/pkg

이제 페치 후에 다운로드 한 패키지를 설치하려면 pkg install정상적으로 실행하십시오 . 설치 프로세스는 다운로드 된 파일이 아닌 캐시 된 파일을 사용합니다.

시간이 지남에 따라 패키지 캐시 디렉토리가 커질 수 있습니다. 이 pkg clean명령은 최신 버전으로 교체 된 캐시 된 패키지와 더 이상 저장소에없는 패키지 파일을 제거합니다.

pkg clean

캐시 된 모든 패키지를 제거하려면 다음 -a플래그를 사용하십시오 .

pkg clean -a

각 패키지 설치 또는 업그레이드 후에 패키지 캐시를 자동으로 정리하려면 pkg.conf옵션 AUTOCLEAN을로 설정하십시오 true.

설치된 패키지에 대한 정보 얻기

시스템에 설치 한 패키지를 잊어 버린 경우 pkg info설치된 소프트웨어의 전체 목록을 얻는 데 사용할 수 있습니다 .

pkg info
# atk-2.28.1                     GNOME accessibility toolkit (ATK)
# avahi-app-0.7_2                Service discovery on a local network
# ca_root_nss-3.42.1             Root certificate bundle from the Mozilla Project
# . . .
# . . .

설치된 패키지에 대한 자세한 정보가 필요하면 pkg info및 패키지 이름을 사용하십시오. 다음은 인간 친화적 인 보고서에 패키지 설치 세부 사항을 표시합니다.

pkg info nginx
# nginx-1.14.2_3,2
# Name           : nginx
# Version        : 1.14.2_3,2
# . . .
# . . .

소프트웨어 버전, 소프트웨어 설치 시간, 소프트웨어 라이센스, 컴파일 타임 플래그 등과 같은 유용한 정보를 많이 볼 수 있습니다. pkg-info자세한 내용 은 매뉴얼 페이지를 확인 하십시오.

패키지 제거

이진 패키지를 제거하려면 pkg delete하위 명령을 사용하십시오 . 또한 다음과 같이 제공됩니다 pkg remove.

pkg delete nginx
# or
pkg remove nginx

제거 할 패키지 목록과이를 확보 할 공간의 양이 표시됩니다.

다른 패키지가 종속 된 패키지를 제거하면 종속 pkg패키지도 제거됩니다.

패키지 잠금

서버의 패키지가 업그레이드되지 않는 시간이있을 수 있습니다. 패키지를 잠그면 pkg업그레이드, 다운 그레이드, 제거 또는 재설치하지 않습니다. 패키지의 종속성 및 종속 프로그램에 동일한 규칙을 적용합니다.

pkg lock패키지를 잠그는 데 사용하십시오 .

pkg lock openssl

openssl패키지는 잠겨 있습니다.

시스템에서 현재 잠긴 패키지를 모두 나열하려면 다음 -l플래그를 사용하십시오 .

pkg lock -l

잠금을 제거하려면 다음 pkg unlock명령을 사용하십시오 .

pkg unlock openssl

시스템의 모든 패키지를 한 번에 잠 그거나 잠금 해제하려면 -a플래그를 사용하십시오 .

pkg lock -a
pkg unlock -a

패키지 리포지토리

패키지 리포지토리는에서 지원되며 pkg패키지 모음입니다. 리포지토리를 추가, 제거, 활성화 및 비활성화 할 수 있습니다. UCL 형식을 사용하여 각 저장소를 자체 파일로 구성해야합니다. 공식 FreeBSD 저장소는 /etc/pkg디렉토리에 속합니다 . FreeBSD는 저장소 "FreeBSD"가 활성화 된 상태로 제공됩니다. 구성 파일은 /etc/pkg/FreeBSD.conf다음 위치 에 있습니다 .

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

필요에 따라 리포지토리를 추가 및 제거 할 수 있습니다. 으로 /etc/pkgFreeBSD 공식 저장소 예약되어, 다른 디렉토리를해야합니다. 전통적인 위치는 /usr/local/etc/pkg/repos입니다. 다른 디렉토리를 사용 pkg.conf하려면 REPO_DIRS옵션 을 사용하여 위치를 설정해야합니다 . 로컬 저장소 디렉토리는 기본적으로 존재하지 않으므로로 작성해야합니다 mkdir -p /usr/local/etc/pkg/repos. 자신의 저장소 구성을 해당 디렉토리에 두십시오.

pkg부속 명령 예

이 절에는 FreeBSD 서버를 관리 할 때 가장 많이 사용되는 하위 명령이 나열되어 있습니다.

# Installs a package without asking any questions
pkg install -y package

# Makes a backup of the local package database
pkg backup

# Lists all installed packages
pkg info

# Shows extended information for a package
pkg info package

# Searches package repository
pkg search -i package

# Shows packages with known security vulnerabilities
pkg audit -F

# Shows which package owns the named file
pkg which file

# Removes unused packages
pkg autoremove

# Uninstalls a package
pkg delete package

# Removes cached packages from /var/cache/pkg 
pkg clean -ay

# Updates local copy of the package catalog
pkg update

# Upgrades installed packages to their latest version
pkg upgrade

# Checks the integrity of all your packages
pkg check -saq

# Verifies that a package's files are unaltered
pkg check -s nginx

# Shows what files came with the package
pkg info -l nginx

# Lists non-automatic packages
pkg prime-list

중요한 파일과 디렉토리

  • pkg구성 파일 -/usr/local/etc/pkg.conf
  • 공식 FreeBSD 저장 소용으로 예약 된 디렉토리- /etc/pkg
  • FreeBSD 저장소 파일- /etc/pkg/FreeBSD.conf
  • 사용자 정의 리포지토리의 전통적인 위치- /usr/local/etc/pkg/repos
  • 패키지 캐시 디렉토리- /var/cache/pkg
  • SQLite 데이터베이스- /var/db/pkg/local.sqlite

요약

FreeBSD는 서드 파티 소프트웨어 설치를위한 두 가지 보완 기술인 FreeBSD Ports Collection, 소스 및 패키지에서 설치, 사전 빌드 된 바이너리에서 설치를 제공합니다. FreeBSD가 시스템을 범용 패키지 관리로보다 결정적으로 옮기고 있으므로 pkg가능한 한 써드 파티 소프트웨어를 관리 하십시오. 원하는 소프트웨어에 패키지 버전이 없거나 컴파일 타임 옵션을 사용자 정의해야하는 경우가 아니면 포트를 사용하지 마십시오.



Leave a Comment

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.