웹사이트 검색

APT와 적성이란 무엇입니까? 그리고 그들 사이의 실제 차이점은 무엇입니까?


Aptitudeapt-get은 패키지 관리를 처리하는 인기 있는 두 가지 도구입니다. 둘 다 설치, 제거, 검색 등을 포함하여 패키지에 대한 모든 종류의 활동을 처리할 수 있습니다. 그러나 두 도구 간에는 사용자가 다른 도구보다 선호하는 차이점이 있습니다. 이 두 도구를 별도로 고려하게 만드는 차이점은 이 기사의 범위입니다.

아파트란 무엇인가

Apt 또는 Advanced Packaging Tool은 소프트웨어 설치 및 제거를 원활하게 처리하는 무료 오픈 소스 소프트웨어입니다. 처음에는 Debian의 .deb 패키지용으로 설계되었지만 RPM 패키지 관리자와 호환되도록 만들어졌습니다.

Apt는 GUI가 없는 전체 명령줄입니다. 설치할 패키지 이름을 지정하고 명령줄에서 호출할 때마다 종속성 목록과 함께 '/etc/apt/sources.list'에 지정된 소스 구성된 목록에서 해당 패키지를 찾습니다. 해당 패키지에 대해 정렬하고 현재 패키지와 함께 자동으로 설치하므로 사용자는 종속성 설치에 대해 걱정할 필요가 없습니다.

매우 유연하여 사용자가 다양한 구성을 쉽게 제어할 수 있습니다. 예: 패키지 검색을 위해 새 소스 추가, 적절한 고정, 즉 시스템 업그레이드 중에 사용할 수 없는 패키지를 표시하여 현재 버전을 설치된 최종 버전으로 만들기, "스마트" 업그레이드, 즉 가장 중요한 패키지를 업그레이드하고 가장 덜 중요한 패키지는 그대로 두는 것입니다.

적성이란 무엇입니까?

Aptitude는 기능에 사용자 인터페이스를 추가하여 사용자가 대화형으로 패키지를 검색하고 설치하거나 제거할 수 있도록 하는 고급 패키징 도구의 프런트엔드입니다. 처음에 Debain용으로 제작된 Aptitude는 기능을 RPM 기반 배포판으로도 확장합니다.

사용자 인터페이스는 GUI에서 흔히 볼 수 있는 다양한 요소를 추가하는 ncurses 라이브러리를 기반으로 합니다. 가장 중요한 점 중 하나는 apt-get의 명령줄 인수 대부분을 에뮬레이트할 수 있다는 것입니다.

전체적으로 Aptitude는 낮은 수준의 세부 정보를 추상화하고 텍스트 기반 대화형 UI 모드와 심지어 명령줄 비대화형 모드에서도 작동할 수 있는 상위 수준 패키지 관리자입니다.

실제 사례를 통해 APT 및 Aptitude의 사용법을 알고 싶다면 다음 기사를 읽어보세요.

  1. APT-GET 및 APT-CACHE에 대한 25가지 유용한 예를 알아보세요.
  2. Aptitude 및 Dpkg를 사용하여 Linux 패키지 관리 알아보기

APT와 적성의 차이점은 무엇입니까?

주요 차이점은 Aptitude가 상위 수준 패키지 관리자이고 APT가 다른 상위 수준 패키지 관리자가 사용할 수 있는 하위 수준 패키지 관리자라는 것입니다. 이 두 패키지 관리자를 구분하는 주요 특징은 다음과 같습니다.

  1. Aptitudeapt-get보다 기능이 더 광범위하며 apt-get과 apt-markapt를 포함한 다른 변형의 기능을 통합합니다. -캐시.

apt-get은 모든 패키지 설치, 업그레이드, 시스템 업그레이드, 패키지 제거, 종속성 해결 등을 처리하는 반면, Aptitude는 apt-mark의 기능을 포함하여 apt보다 훨씬 더 많은 작업을 처리합니다. apt-cache 즉, 설치된 패키지 목록에서 패키지를 검색하고, 패키지를 자동 또는 수동으로 설치하도록 표시하고, 업그레이드할 수 없도록 패키지를 보관하는 등의 작업을 수행합니다.

  1. apt-get에는 UI가 없지만 Aptitude에는 텍스트 전용 대화형 UI가 있습니다.

Apt-get은 하위 수준 패키지 관리자로서 명령줄로만 제한되는 반면, 상위 수준 도구인 Aptitude에는 필수 항목을 입력하여 명령줄 작업 옵션과 함께 기본 텍스트 전용 대화형 인터페이스가 있습니다. 명령.

  1. 적성은 apt-get보다 더 나은 패키지 관리 기능을 제공합니다.

패키지 설치, 제거 및 충돌 해결과 관련된 많은 상황에서 Aptitude는 apt-get보다 그 가치를 입증합니다. 일부 상황은 다음과 같습니다.

1. 설치된 패키지를 제거하는 동안 Aptitude는 사용되지 않은 패키지를 자동으로 제거하는 반면, apt-get은 사용자가 다음 중 하나를 추가하여 이를 명시적으로 지정하도록 요구합니다. '—auto-remove' 추가 옵션 또는 'apt-get autoremove' 지정.4

2. 특정 작업이 차단되는 이유, 특정 작업을 수행해야 하는 이유 또는 이유를 자세히 조사하기 위해 Aptitude는 '이유''을 제공합니다. 왜 안돼?' 명령.

좋아요: Aptitude는 설치된 패키지 목록을 보고 제안된 패키지 중 종속성이 있는지 또는 종속성 중 하나가 해당 패키지를 제안하는지 확인하여 특정 패키지를 설치하는 이유를 찾을 수 있습니다. .

$ aptitude why yaws-wiki
i   doc-base  Suggests   dhelp | dwww | doc-central | yelp | khelpcenter4
p   dwww      Depends    apache2 | httpd-cgi
p   yaws      Provides   httpd-cgi
p   yaws      Suggests   yaws-wiki

여기에서 'yaws-wiki'라는 패키지를 설치하는 이유가 가상 패키지를 제공하는 (yaws) 종속성에 의해 제안된 것인지 검색했습니다. (dwww) 패키지가 종속성을 갖고 (dwww) 패키지가 '라는 설치된 패키지 중 하나에 의해 제안되는 >(httpd-cgi) 문서 기반'.

이 기능은 apt-get에 없습니다.

3. apt-get은 메시지와 함께 패키지 설치 또는 제거와 관련된 작업이 충돌하는 경우 종료될 수 있지만 Aptitude는 제안할 수 있습니다. 해당 충돌을 제거하기 위한 가능한 조치.

Aptitude는 시스템뿐만 아니라 전체 저장소에 있는 거의 모든 패키지를 검색하는 데 사용할 수 있는 강력한 검색 기능을 제공합니다.

apt-get은 패키지를 검색하기 위해 다른 apt의 변형, 즉 apt-cache가 필요한 반면, Aptitude는 설치되었거나 존재하는 패키지를 검색하는 훨씬 더 쉽고 효율적인 방법을 제공합니다. 저장소에 있지만 아직 설치되지 않았습니다.

apt-cache와 Aptitude를 사용하여 패키지 검색

$ apt-cache search 'python' | head -n4
kate - powerful text editor
kcachegrind-converters - format converters for KCachegrind profiler visualisation tool
kig - interactive geometry tool for KDE
python-kde4 - Python bindings for the KDE Development Platform

$ aptitude search 'python' | head -n4
i   bpython                         - fancy interface to the Python interpreter 
p   bpython-gtk                     - fancy interface to the Python interpreter 
p   bpython-urwid                   - fancy interface to the Python interpreter 
p   bpython3                        - fancy interface to the Python3 interpreter

여기서는 기본적으로 apt-cacheaptitude 모두 저장소의 전체 패키지 목록에서 패키지를 검색하지만 aptitude의 출력에는 패키지가 시스템에 설치되어 있는지 또는 패키지가 있지만 설치되지 않았음을 나타내는 'p'와 패키지가 설치되었음을 나타내는 'i'인 패키지별 플래그를 제공하는 것이 아니라 apt -cache는 패키지가 설치되었는지 여부를 알려주지 않고 패키지와 한 줄의 세부 정보만 나열합니다.

Aptitude를 사용한 고급 패키지 검색의 다른 예

1. 패키지 이름에 'python2.7'가 있고 설명에 '2.7'가 있는 저장소에서 패키지를 검색합니다.

$ aptitude search '~npython2.7 ~d2.7'
p   idle-python2.7                   - IDE for Python (v2.7) using Tkinter       
i   libpython2.7                     - Shared Python runtime library (version 2.7
p   libpython2.7:i386                - Shared Python runtime library (version 2.7
p   libpython2.7-dbg                 - Debug Build of the Python Interpreter (ver
p   libpython2.7-dbg:i386            - Debug Build of the Python Interpreter (ver
i A libpython2.7-dev                 - Header files and a static library for Pyth
p   libpython2.7-dev:i386            - Header files and a static library for Pyth
i   libpython2.7-minimal             - Minimal subset of the Python language (ver
p   libpython2.7-minimal:i386        - Minimal subset of the Python language (ver
i   libpython2.7-stdlib              - Interactive high-level object-oriented lan
p   libpython2.7-stdlib:i386         - Interactive high-level object-oriented lan
p   libpython2.7-testsuite           - Testsuite for the Python standard library 
i   python2.7                        - Interactive high-level object-oriented lan
p   python2.7:i386                   - Interactive high-level object-oriented lan
p   python2.7-dbg                    - Debug Build of the Python Interpreter (ver
p   python2.7-dbg:i386               - Debug Build of the Python Interpreter (ver
i A python2.7-dev                    - Header files and a static library for Pyth
p   python2.7-dev:i386               - Header files and a static library for Pyth
p   python2.7-doc                    - Documentation for the high-level object-or
p   python2.7-examples               - Examples for the Python language (v2.7)   
i   python2.7-minimal                - Minimal subset of the Python language (ver
p   python2.7-minimal:i386           - Minimal subset of the Python language (ver

여기서 '~n'은 이름을 나타내고, '~d'는 설명을 나타냅니다. 동일한 명령의 다른 형태는 다음과 같습니다.

aptitude search '?name(python2.7) ?description(2.7)'
다른 플래그는 다음과 같습니다.
  1. ~i 또는 ?installed(): 설치된 패키지 목록에서만 패키지를 검색합니다.
  2. ~U 또는 ~Upgradable: 사용 가능한 최신 버전으로 업그레이드할 수 있는 모든 패키지를 나열합니다.
  3. ~E 또는 ?Essential(): 설치되었거나 사용 가능한 필수 패키지입니다.
$ aptitude versions '?Upgradable' | head -n 12
Package apache2:
ph  2.4.7-1ubuntu4                                trusty                    500 
ph  2.4.7-1ubuntu4.5                              trusty-security           500 
ih  2.4.7-1ubuntu4.8                                                        100 
ph  2.4.7-1ubuntu4.9                              trusty-updates            500 

Package apache2-bin:
p A 2.4.7-1ubuntu4                                trusty                    500 
p A 2.4.7-1ubuntu4.5                              trusty-security           500 
i A 2.4.7-1ubuntu4.8                                                        100 
p A 2.4.7-1ubuntu4.9                              trusty-updates            500 

설치된 버전('i'로 표시)과 업그레이드 가능한 버전('p'로 표시)이 있는 3개 패키지의 짧은 목록이 여기에 표시됩니다.

2. 특정 서비스를 제공하는 모든 패키지 찾기

smtp 서비스를 제공하는 모든 패키지를 찾으려면:

$ aptitude search '?provides(smtp)'
p   libghc-smtpclient-dev            - Simple Haskell SMTP client library        
p   libghc-smtpclient-dev:i386       - Simple Haskell SMTP client library        
p   libghc-smtpclient-prof           - Simple Haskell SMTP client library; profil
p   libghc-smtpclient-prof:i386      - Simple Haskell SMTP client library; profil
p   syslog-ng-mod-smtp               - Enhanced system logging daemon (SMTP plugi
p   syslog-ng-mod-smtp:i386          - Enhanced system logging daemon (SMTP plugi

3. 특정 패키지를 제안하는 모든 패키지 찾기

여기처럼 'gcc' 패키지를 제안하는 모든 패키지가 나열됩니다.

$ aptitude search '~DSuggests:gcc' | head -n10
p   bochs                           - IA-32 PC emulator                         
p   bochs:i386                      - IA-32 PC emulator                         
p   cpp-4.4                         - GNU C preprocessor                        
p   cpp-4.4:i386                    - GNU C preprocessor                        
p   cpp-4.6                         - GNU C preprocessor                        
p   cpp-4.6:i386                    - GNU C preprocessor                        
p   cpp-4.7                         - GNU C preprocessor                        
p   cpp-4.7:i386                    - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi       - GNU C preprocessor                        
p   cpp-4.7-arm-linux-gnueabi:i386  - GNU C preprocessor 

결론

따라서 대부분의 경우 Aptitude 구문은 apt-get 구문과 거의 동일하게 유지되어 apt-get 사용자가 Aptitude로 마이그레이션하는 데 어려움을 덜 겪도록 합니다. , 그러나 이 외에도 Aptitude에는 선택할 수 있는 강력한 기능이 많이 통합되어 있습니다. 우리가 강조한 차이점 외에도 이 두 패키지 관리자 사이에 다른 흥미로운 차이점을 발견하면 의견에 언급해 주세요.