FreeBSD에서 패키지를 관리하기위한 23 개의 유용한 PKG 명령 예제
이 튜토리얼에서는 Ports 소프트웨어 컬렉션 저장소를 통해 PKG라는 패키지 관리 도구를 사용하여 FreeBSD에서 미리 컴파일 된 바이너리 패키지 응용 프로그램을 관리하는 방법을 설명합니다.
Ports 저장소는 소스 코드에서 응용 프로그램을 컴파일하는 데 필요한 도구를 종속성과 함께 제공하지만 pkg 명령으로 FreeBSD 시스템에 설치할 수있는 사전 컴파일 된 패키지 (현재 24.000 개 이상의 패키지)를 유지합니다.
- FreeBSD 11.x Installation
FreeBSD의 포트 트리에서 응용 프로그램 검색 및 찾기
1. 포트 저장소는 FreeBSD에서 범주로 나뉘며, 각 범주는/usr/ports/파일 시스템 경로의 디렉토리로 표시됩니다.
/ usr/ports/디렉토리의 간단한 목록은 아래 스크린 샷과 같이 사용 가능한 모든 범주를 표시합니다.
# ls /usr/ports/

2. 범주에 속하는 사용 가능한 모든 응용 프로그램을 보려면 범주 디렉토리에 대해 ls 명령을 실행합니다.
데이터베이스 범주가 제공해야하는 사용 가능한 모든 소프트웨어 패키지를 표시하려는 경우 콘솔에서 아래 명령을 실행합니다. 적은 명령을 통해 결과를 파이프하여 출력을 더 쉽게 탐색 할 수 있습니다.
# ls /usr/ports/databases/ | less

3. 범주에서 사용 가능한 패키지 수를 보려면 아래 예와 같이 범주 디렉토리를 나열하고 wc 명령을 통해 결과를 파이프합니다.
# ls /usr/ports/databases/ | wc -l

위의 스크린 샷에서 볼 수 있듯이 FreeBSD 데이터베이스 범주에는 1000 개 이상의 데이터베이스 사전 준수 패키지가 있습니다.
4. 범주에서 특정 응용 프로그램을 사용할 수 있는지 확인하려면 다시 ls 명령을 사용하고 grep 유틸리티를 통해 결과를 필터링하여 사용자 지정 응용 프로그램을 검색합니다.
아래 예제에서 mongodb 데이터베이스 사용 가능한 패키지 및 clam 바이러스 백신 보안 패키지를 검색합니다.
# ls /usr/ports/databases/ | grep mongodb # ls /usr/ports/security/ | grep clam

보시다시피, FreeBSD 포트에서 여러 버전의 응용 프로그램을 사용할 수 있습니다.

5. 소프트웨어가 어떤 범주에 속하는지 모르는 경우 다른 접근 방식을 사용하여 소프트웨어 범주를 찾을 수 있습니다. 쉘 글 로빙 와일드 카드 *
문자를 사용하여 전체 포트 디렉토리 트리를 통해 패턴을 검색하십시오.
mailx 유틸리티 용 소프트웨어 패키지를 어떤 범주에서 찾을 수 있는지 확인하려면 다음 명령을 실행할 수 있습니다.
# ls /usr/ports/*/*mailx

6. 소프트웨어 패키지 및 패키지가 속한 범주를 검색하는 또 다른 방법은 문자열 패턴에 대해 Locate 명령을 사용하는 것입니다.
검색 문자열을 수행하기 전에 다음 명령을 사용하여 찾기 데이터베이스를 업데이트해야합니다.
# /usr/libexec/locate.updatedb

7. 데이터베이스 찾기를 업데이트 한 후 패키지 이름에서 키워드 패턴을 사용하여 특정 소프트웨어 패키지를 검색합니다. 예를 들어 mailx 유틸리티를 검색하려면 아래 명령을 실행할 수 있습니다.
# locate mailx

보시다시피 mailx 유틸리티에 사용할 수있는 두 개의 패키지가 모두/usr/ports/mail/범주에 있습니다.
8. find 명령을 사용하여 패키지를 찾는 것과 유사하게 whereis 명령을 사용하여 애플리케이션 범주를 볼 수도 있습니다.
# whereis mailx

FreeBSD에서 PKG 명령을 통해 소프트웨어 검색
9. FreeBSD에서 응용 프로그램을 검색하고 찾는 가장 쉬운 방법은 PKG 패키지 관리 명령 줄을 이용하는 것입니다. 응용 프로그램 (예 : postfix 소프트웨어)의 바이너리 패키지를 검색하려면 아래 명령을 실행하십시오.
# pkg search package_name

10. 패키지가 속한 카테고리를 확인하려면 아래 예와 같이 -o
플래그를 사용하여 위와 동일한 명령을 실행합니다.
# pkg search -o package_name

FreeBSD에서 소프트웨어 관리
11. FreeBSD의 Ports 리포지토리에서 미리 컴파일 된 패키지를 설치하려면 아래 예제와 같이 pkg 명령을 실행하십시오.
# pkg install package_name

12. 시스템에 설치된 특정 패키지에 대한 정보를 조회하려면 아래 명령을 실행하십시오.
# pkg info package_name

13. 아래 스크린 샷과 같이 소프트웨어 패키지가 시스템에 아직 설치되지 않은 경우 pkg info 명령 스위치는 \"패키지 _ 이름과 일치하는 패키지가 없습니다\"라는 메시지를 표시합니다.
# pkg info tcpdump

14. FreeBSD에 설치된 모든 소프트웨어 패키지를 나열하려면 옵션이나 스위치없이 pkg info 명령을 실행하십시오.
pkg info 명령에 대한 grep 필터는 아래 예와 같이 일부 특정 패키지 또는 응용 프로그램이 시스템에 이미 있는지 여부를 보여줍니다.
# pkg info | grep ftp

15. 시스템에서 패키지를 제거하려면 아래 명령을 실행하십시오.
# pkg remove package_name or # pkg delete package_name

16. 설치된 패키지의 제거 또는 수정을 방지하려면 아래 이미지와 같이 pkg 명령에 잠금 스위치를 사용할 수 있습니다.
# pkg lock package_name

Unlock pkg 명령 스위치를 사용하면 패키지 제한을 제거하고 패키지를 수정하거나 제거 할 수 있습니다.
# pkg unlock package_name
17. 명령 또는 실행 파일이 속한 설치된 패키지를 확인하려면 아래 스크린 샷 예와 같이 다음 명령을 실행합니다.
# pkg which /path/to/executable

18. 시스템에 패키지를 설치하지 않고 Ports 저장소에서 패키지를 로컬로 다운로드하려면 fetch 스위치와 함께 pkg 명령을 실행합니다.
압축 된 .txz 파일 인 다운로드 된 패키지 바이너리는/var/cache/pkg/시스템 경로에서 찾을 수 있습니다.
# pkg fetch package_name # ls /var/cache/pkg/ | grep package_name

19. 설치된 패키지가 일반적인 취약점이나 버그에 노출되었는지 확인하려면 아래 명령을 실행하십시오.
# pkg audit -F
이전 버전에서 소프트웨어 패키지에 영향을 미치는 이전 취약점 목록을 보려면 아래 명령을 실행하십시오.
# pkg audit package_name
다음은 FreeBSD 용으로 컴파일 된 Nginx 웹 서버에서 발견 된 알려진 모든 취약점을 발췌 한 것입니다.
# pkg audit nginx
nginx is vulnerable: Affected versions: <= 0.8.41 : > 1.4.4,1 nginx -- Request line parsing vulnerability CVE: CVE-2013-4547 WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html nginx is vulnerable: Affected versions: < 1.0.15 nginx -- Buffer overflow in the ngx_http_mp4_module CVE: CVE-2012-2089 WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html nginx is vulnerable: Affected versions: < 1.4.7 nginx -- SPDY heap buffer overflow CVE: CVE-2014-0133 WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html ...
FreeBSD에서 패키지 관리 유틸리티 유지
20. 소프트웨어 저장소와 설치된 모든 패키지가 최신 버전 또는 보안 패치로 최신 상태인지 확인하려면 다음 명령을 실행하십시오.
# pkg update # pkg upgrade

21. 시스템에 설치된 패키지 수 및 설치된 소프트웨어로 채워지는 디스크 공간과 같은 원격 저장소 및 로컬 패키지 통계를 표시하려면 다음 명령을 실행하십시오.
# pkg stats

22. 시스템에 설치된 패키지가 남긴 모든 종속성을 삭제하려면 아래 명령을 실행하십시오.
# pkg autoremove

23. 원격 다운로드 패키지에 대한 패키지 관리 로컬 캐시 디렉터리를 자동으로 지우려면 아래 명령을 실행합니다. 먼저 로컬에서 다운로드 한 바이너리 패키지 목록을 확인해야합니다.
# pkg clean -a -n # pkg clean -a -y

그게 다야! "보시다시피 FreeBSD는 Yum, RPM 및 APT와 같은 Linux 배포판에서 사용되는 패키지 관리 도구와 유사한 인상적인 패키지 수집 시스템을 가지고 있으며, 수많은 사전 컴파일 된 소프트웨어 바이너리와 간단하고 효과적인 명령 줄 pkg가 있습니다. 적절한 방식으로 소프트웨어를 관리하는 데 사용할 수 있습니다.