웹사이트 검색

FreeBSD에서 패키지를 관리하는 데 유용한 PKG 명령 예제 23개


이 튜토리얼에서는 포트를 통해 PKG라는 패키지 관리 도구를 사용하여 FreeBSD에서 사전 컴파일된 바이너리 패키지 애플리케이션을 관리하는 방법을 설명합니다. > 소프트웨어 컬렉션 저장소.

포트 저장소는 종속성과 함께 소스 코드에서 애플리케이션을 컴파일하는 데 필요한 도구를 제공할 뿐만 아니라 현재 24,000개 이상의 패키지인 사전 컴파일된 패키지의 거대한 컬렉션을 유지 관리합니다. pkg 명령을 사용하여 FreeBSD 시스템에 설치할 수 있습니다.

요구사항:

  1. FreeBSD 11.x 설치

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 antivirus 보안 패키지를 검색합니다.

ls /usr/ports/databases/ | grep mongodb
ls /usr/ports/security/ | grep clam

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

5. 소프트웨어가 어떤 카테고리에 속하는지 모르는 경우 다른 접근 방식을 사용하여 소프트웨어 카테고리를 찾을 수 있습니다. 전체 포트 디렉터리 트리에서 패턴을 검색하려면 쉘 글로빙 와일드카드 * 문자를 사용하세요.

mailx 유틸리티용 소프트웨어 패키지를 찾을 수 있는 카테고리를 확인하고 싶다면 다음 명령을 실행할 수 있습니다.

ls /usr/ports/*/*mailx

6. 소프트웨어 패키지와 패키지가 속한 카테고리를 검색하는 또 다른 방법은 문자열 패턴에 대해 찾기 명령을 사용하는 것입니다.

검색 문자열을 수행하기 전에 다음 명령을 사용하여 찾기 데이터베이스를 업데이트해야 합니다.

/usr/libexec/locate.updatedb

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

locate mailx

보시다시피, mailx 유틸리티에 사용할 수 있는 두 개의 패키지가 있으며, 둘 다 /usr/ports/mail/ 카테고리에 있습니다.

8. 찾기 명령으로 패키지를 찾는 것과 유사하게 whereis 명령을 사용하여 애플리케이션 카테고리를 볼 수도 있습니다.

whereis mailx

FreeBSD에서 PKG 명령을 통해 소프트웨어 검색

9. FreeBSD에서 애플리케이션을 검색하고 찾는 가장 쉬운 방법은 PKG 패키지 관리 명령줄을 이용하는 것입니다. postfix 소프트웨어와 같은 애플리케이션의 바이너리 패키지를 검색하려면 아래 명령을 실행하세요.

pkg search package_name

10. 패키지가 어떤 카테고리에 속하는지 확인하려면 아래 예에 표시된 대로 -o 플래그와 함께 위와 동일한 명령을 실행하세요.

pkg search -o package_name

FreeBSD에서 소프트웨어 관리

11. FreeBSD의 포트 저장소에서 사전 컴파일된 패키지를 설치하려면 아래 예에 표시된 대로 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 명령에 lock 스위치를 사용할 수 있습니다.

pkg lock package_name

잠금 해제 pkg 명령 스위치를 사용하면 패키지 제한을 제거하고 패키지를 수정하거나 제거할 수 있습니다.

pkg unlock package_name

17. 명령이나 실행 파일이 어느 설치된 패키지에 속해 있는지 확인하려면 아래 스크린샷 예시와 같이 다음 명령을 실행하세요.

pkg which /path/to/executable

18. 시스템에 패키지를 설치하지 않고 포트 저장소에서 패키지를 로컬로 다운로드하려면 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.