Computer >> 컴퓨터 >  >> 체계 >> Linux

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

Debian 기반 Linux 배포판을 처음 사용하는 많은 사람들에게 패키지 관리가 복잡해 보일 수 있습니다. 일부 자습서에서는 "apt"를 사용하고 다른 자습서에서는 "apt-get"을 사용하고 일부는 정말 오래되었거나 특정 자습서에서는 "aptitude"를 사용합니다. 이제 Linux 세계의 이 작은 구석에 있는 이상하고 다소 분열된 세계의 "왜, 어디서, 무엇을, 어떻게"에 대해 절대적인 세부 사항을 설명해야 할 때입니다.

적정 혼란 해소

그것들을 구별하는 모든 작은 세부 사항에 관계없이 apt , apt-getaptitude 모두 온라인 리포지토리와 상호 작용하는 데비안의 패키지 관리 시스템에 대한 다른 전화 카드입니다. 이미 충분하지 않은 것처럼 Debian에는 온디스크 설치와 관련된 패키지 관리 도구가 하나 더 있습니다. dpkg .

후자는 웹에서 .deb 패키지를 다운로드하고 두 번 클릭하여 설치할 때마다 사용하는 도구입니다. 마치 Windows의 MSI 패키지처럼 말입니다. Solus에는 EOPKG가 있고 Fedora에는 RPM이 있으며 Arch에는 AUR이 있습니다. Android에도 APK라는 패키지가 있으며 해당 패키지의 가장 큰 단일 저장소는 Google Play 스토어입니다. 이제 Linux의 구조가 데스크탑이나 랩탑 컴퓨터에서 작동하지 않는 운영 체제에도 다른 운영 체제에 얼마나 친숙한지 알 수 있기를 바랍니다.

적성이란 무엇입니까?

Aptitude는 APT의 중추 역할을 하며, 배포판이 리포지토리에서 제공하는 모든 패키지와 추가한 패키지를 자세히 살펴보고 싶을 때 사용할 수 있는 프런트 엔드 역할을 합니다. 또한 터미널 내부에서 직접 실행되는 몇 안 되는 구식 클릭 가능한 GUI 중 하나입니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

APT란 무엇입니까?

고급 패키징 도구로 알려진 APT는 운영 체제에 설치한 다양한 응용 프로그램을 제거, 설치, 검색 및 관리하는 프로세스를 주류화하는 데비안의 솔루션입니다. APT의 모든 응용 프로그램이 동일하지는 않지만 이를 기반으로 하는 모든 배포판은 APT를 사용합니다. 잠시 후에 이 문제에 대해 알아보겠습니다.

현재로서는 APT가 패키지 관리자가 아니라는 점에 주목하는 것이 아닙니다. apt 명령. 대신 apt-get, apt-mark 및 apt-cache와 같은 다양한 APT 관련 명령을 포함합니다.

APT를 사용하는 배포판은 무엇입니까?

배포판이 "Debian 기반"으로 설명되어 있으면 APT 도구를 어떤 식으로든 사용합니다. 여기에는 다음이 포함되지만 이에 국한되지는 않습니다.

  • 데비안
  • 우분투
  • 리눅스 민트
  • MX 리눅스
  • Grml
  • 칼리 리눅스
  • 꼬리
  • 퓨어OS
  • 라즈베리 파이 OS
  • 기본 OS
  • SteamOS(더 이상 Debian이 아님, 2021년 Steam 3.0용 Arch로 이전됨)

데비안을 기반으로 하는 훨씬 더 많은 배포판이 있으므로 여기에 나열되지 않은 것을 사용하는 경우 apt-get 명령은 단순히 터미널에 입력하여 작동합니다. 터미널이 명령이 존재하지 않는다는 혼란스러운 메시지와 함께 반환되면 데비안에서 건드린 것이 전혀 없는 것입니다.

Apt-get 대 Apt

패키지 설치와 관련된 온라인 자습서에서 apt-get을 볼 수 있습니다. 및 apt 모든 데비안 기반 시스템에서 명령으로 상호 교환 가능하게 사용됩니다. 물건을 설치하고 제거할 때 실제로 사용하는 명령에는 차이가 없습니다. 두 버전이 서로 다르기 때문에 혼동하지 마세요.

내가 apt-get이라고 말한 것을 기억하십시오. 고급 패키징 도구의 몇 가지 다른 명령 중 하나일 뿐입니다. APT를 처음 사용하는 사람에게는 어떤 명령이 apt-get에 유효한지 외워야 하는 것이 약간 혼란스러울 수 있습니다. , apt-markapt-cache . 예를 들어 패키지 검색 명령어가 apt-cache search라는 것을 알고 계셨나요? ?

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

이 세 가지 명령의 일상 생활에 가장 유용한 기능이 모두 통합된다면 어떨까요?

정확합니다. apt 명령은 자체적으로 수행합니다. 이 세 글자는 터미널에 입력하면 APT 생태계의 "래퍼" 역할을 하여 터미널에서 많은 시간을 낙서하는 사람들을 위해 프로세스를 단순화합니다.

패키지 검색 시 apt search 대부분 apt-cache search와 동일한 결과를 반환합니다. .

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

APT 플래그에 대한 설명

두 검색 명령의 출력을 보여주는 이미지에 세심한 주의를 기울이면 약간 다른 정보가 표시됩니다. 그 이유는 apt 명령은 apt-cache search 외에 시스템의 애플리케이션 상태에 대한 정보를 가져옵니다. 꺼냅니다.

이제 apt search 출력에서 ​​패키지 이름 옆에 있는 "i"가 무엇을 의미하는지 설명할 좋은 시간입니다. . 데비안 패키지 도구의 프론트엔드인 aptitude에서 배치한 플래그입니다.

다음은 터미널에 표시되는 플래그 목록과 그 의미입니다.

  • A – 더 큰 메타 패키지의 일부로 또는 운영 체제 자체 설치로 자동 설치됩니다.
  • B – 패키지가 파손된 것으로 플래그가 지정되어 다시 설치해야 합니다.
  • H – 반 설치. 패키지 설치를 완료해야 합니다.
  • c – 패키지가 제거되었지만 해당 "고스트"가 구성 파일 형태로 남아 있습니다. apt-get purge를 사용하여 이 문제를 해결할 수 있습니다. 또는 apt purge , 뒤에 이 플래그가 있는 패키지 이름이 옵니다.
  • p – 패키지가 제거되었거나 설치되지 않았습니다.
  • v – 패키지는 일반적으로 다른 사람이 기능을 제공하기 위해 사용합니다. 예를 들어 Firefox는 다른 응용 프로그램에서 사용할 수 있는 탐색 기능을 제공하여 가상 패키지로 만듭니다.
  • i – 이 패키지는 시스템에 설치됩니다.
  • h – 이 패키지에 보류가 있어 최신 버전으로 업데이트할 수 없습니다.

모든 아파트가 같지는 않습니다!

모든으로 이동하기 전에 패키지 관리 주제로 더 나아가 apt 명령은 다른 배포판보다 한 배포판에서 더 많은 사용 가능한 인수를 가질 수 있습니다. 예를 들어 Ubuntu에는 "보류"가 없지만 Mint에는 보유하고 있습니다.

여기서 말하는 내용을 완전히 이해하려면 apt에서 전달할 수 있는 인수에 대해 Ubuntu 및 Mint 목록을 살펴봐야 합니다. 그리고 둘 사이의 깎아지른 듯한 틈을 보십시오.

이것은 튜토리얼을 위해 새로 만든(말장난 의도) 테스트 베드에 있는 Ubuntu입니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

그리고 여기 리눅스 민트가 있습니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

지금까지 민트는 내가 지금까지 본 모든 데비안 기반 배포판 중에서 가장 살을 뺀 래퍼를 가지고 있습니다. Mint를 유지 관리하는 커뮤니티가 짧은 명령으로 앱을 평화롭게 설치하려는 초보자와 모든 것을 조정하려는 터보 괴짜 모두를 충족시키기 위해 커뮤니티에서 맞춤 제작했다는 것을 알면 놀라운 일이 아닙니다. 밀리미터의 정밀도로 원하는 방식으로.

APT 명령에 대한 궁극적인 가이드

APT 패키지 시스템의 힘을 이해하는 데 중요한 몇 가지 명령을 이해하는 것보다 더 좋은 방법은 없습니다. 목록은 apt 다음에 오는 APT 명령으로 구성됩니다. 단순화(해당되는 경우 괄호). 귀하의 특정 배포판에서 단순화가 작동하지 않는 경우, 귀하의 배포판이 어떤 이유로 포함하지 않았거나 Mint의 거대한 래퍼를 실행하고 있지 않기 때문입니다. 이 경우 너무 많은 손실 없이 기본 명령으로 안전하게 돌아갈 수 있습니다.

  • add-apt-repository (apt add-repository ) – 패키지 관리자의 소프트웨어 소스 목록에 새 저장소를 추가합니다.

예를 들어 Lutris의 Mint 20용 현재 저장소를 추가하려면 sudo add-apt-repository를 입력하면 됩니다. 또는 sudo apt add-repository , 뒤에 ppa:lutris-team/lutris . 각 리포지토리는 고유하며 배포용 공식 패키지에 패키지가 없는 대부분의 애플리케이션 개발자는 올바른 방향으로 안내하는 지침을 포함할 것입니다.

  • apt-get clean &apt-get autoremove (apt clean &apt autoremove ) – 종종 함께 사용되는 이 두 명령은 더 이상 필요하지 않은 설치 스크립트와 설치 미디어의 형태로 시스템의 먼지를 제거합니다(clean ), 아무도 사용하지 않거나 의존하지 않는 패키지 저장 공간을 자동으로 해제합니다(autoremove ).

예:sudo apt autoremove && sudo apt clean 터미널의 한 줄에 있는 메인 드라이브의 모든 거미줄을 뒤덮을 것입니다.

  • apt-get changelog (apt changelog ) – 패키지의 최신 변경 사항을 찾습니다.

예:apt-get changelog brave-browser 마지막 버전과 비교하여 최신 버전의 Brave 브라우저에 포함된 내용을 알려줍니다.

  • apt contains – Linux Mint 및 기타 몇 가지 Ubuntu 파생 배포판에서만 찾을 수 있는 이 명령은 프로그램에서 "파일을 찾을 수 없음" 종류의 오류가 발생할 때 사용하는 것입니다. 운이 좋으면 apt contains가 포함됩니다. 설치한 응용 프로그램의 멀리 떨어진 폴더에서 해당 파일을 찾을 수 있습니다!

예:apt contains gettext.sh gettext에 대한 셸 스크립트가 포함된 애플리케이션을 찾습니다. . gettext-base가 있는 경우 Mint 배포판에 설치되어 있으면 즉시 찾을 수 있습니다!

  • apt-get install (apt install ) – 이름에서 알 수 있듯이 패키지를 설치합니다. --reinstall 전달 apt-get 플래그 명령을 실행하면 패키지가 즉시 다시 설치됩니다.

설치 예:sudo apt-get install firefox . Firefox 재설치의 예:sudo apt-get install --reinstall firefox . apt를 통한 보다 간단한 변형 래퍼는 sudo apt reinstall firefox입니다. .

  • apt-get remove (apt purge ) – 터미널 동굴 다이버의 무기고에서 자주 사용되는 또 다른 도구입니다. 이 명령은 APT 에코시스템 또는 DPKG 패키지 관리자가 설치한 모든 것을 제거합니다.

예:sudo apt remove grub-customizer .

  • apt-get update (apt update ) – 이 명령은 수행하지 않습니다. 시스템의 응용 프로그램을 업데이트합니다. 시스템이 리포지토리에서 사용 가능한 버전과 현재 시스템에 설치된 버전을 비교할 수 있도록 APT 캐시를 새로 고칩니다. 확인 중입니다. 업데이트를 위해 수행하지만 수행하지 않습니다.
  • apt-get upgrade (apt upgrade ) – 사용 가능한 경우 시스템에서 찾은 패키지에 대한 업데이트를 다운로드합니다. 일반적으로 이 작업을 수행하기 위해 실행 중인 아무 것도 닫을 필요가 없습니다.
  • apt-mark hold /unhold /showhold (apt hold /unhold /showhold ) – 이 일련의 명령은 보유 애플리케이션을 관리합니다. 패키지를 보유하면 향후 업데이트하지 않도록 운영 체제에 지시합니다. hold 사용 및 unhold , 애플리케이션에 대한 업데이트 보류를 시작하거나 취소할 수 있습니다. showhold 인수는 현재 보류 중인 항목을 나열합니다.

예:sudo apt hold pulseaudio . 현명한 조언:다른 사람들이 의존하는 패키지에 대한 업데이트를 보류하면 현재 하고 있는 작업이 확실하지 않은 경우 장기적으로 시스템이 손상될 수 있습니다.

  • apt-cache search /show (apt search /show ) – 이 사랑스러운 명령 쌍은 서로 잘 연결됩니다. 첫 번째를 사용하여 패키지를 찾은 다음 show를 사용하세요. 패키지에 대한 자세한 내용을 보려면 패키지의 전체 이름을 입력하십시오.

예:sudo apt search gimp .

여기에서 다루지 않았을 수 있는 특정 배포판에 대한 APT의 복잡성에 대해 더 읽고 싶다면 해당 설명서가 터미널에 있습니다. man을 입력하기만 하면 됩니다. 추가 인수 없이 명령 앞에 Enter 키를 누릅니다. , 그리고 바로!

두려운 "apt-get 명령을 찾을 수 없음" 문제

APT가 갑자기 사라져서 터미널에 아무것도 설치할 수 없다면 이것이 세상의 끝이 아닙니다. 약간의 윤활유를 사용하면 좋아하는 패키지 관리자를 실행할 수 있습니다.

우선, 이것이 새로운 시스템이라면 예정인지 다시 확인하십시오. APT를 패키지 관리자로 사용합니다. Fedora는 DNF/yum을 사용하고 Arch는 Pacman을 사용하고 Solus는 EOPKG를 사용하고 openSUSE는 zypper를 사용하고 Mandriva는 urpmi를 사용하며 이 편리한 치트 시트에서 다른 모든 것을 찾을 수 있습니다. 확실히 확인하려면 터미널에 해당 문자를 입력하기만 하면 됩니다.

데비안 기반 시스템에 있고 APT가 실제로 누락되었다고 확신하면 다음 단계로 넘어갈 때입니다.

이 문제에 대한 약간의 추가 이해를 돕기 위해 이제 Ubuntu 시스템을 손상시키고 OS 재설치를 쉽게 피할 수 없도록 하겠습니다!

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

결과는 이제 "명령을 찾을 수 없음" 오류 또는 명령을 처리할 수 없습니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

이제 우리 시스템에 적합한 APT 패키지를 찾아 설치할 차례입니다. 작업할 APT가 없기 때문에 종속 항목도 자동으로 다운로드할 수 없습니다.

운 좋게도 데비안의 온디스크 패키지 관리자(dpkg ) 오늘을 구하러 왔습니다! Ubuntu의 메인 리포지토리에서 내 CPU 아키텍처에 해당하는 apt 패키지의 최신 버전을 다운로드하고 dpkg -I를 실행했습니다. 내가 설치해야 하는 종속 항목을 나열합니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

제 경우에는 최신 버전의 APT를 설치하려고 하면 종속 항목이 모두 있지만 최신 버전이 아니었습니다.

dpkg -i /path/to/your/apt/deb/file을 입력하면 이러한 내용을 알 수 있습니다. . 분명히, 내가 입력한 가짜 경로를 웹사이트에서 다운로드한 .deb 파일에 해당하는 경로로 바꿔야 합니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

버전 2.3.11 대신에 글을 쓰는 시점에 Mint에 설치된 버전 2.0.6을 선택했습니다.

Apt 및 Apt-Get 명령에 대한 궁극적인 가이드

여기 저기 버전을 만지작거리다 보면 결국 현재 설정에서 작동하는 버전을 발견하게 될 것입니다. 이것이 바로 나에게 일어난 일입니다. sudo dpkg -i 입력 후 패키지가 이어지니 마법처럼 매끄럽게 설치되었습니다.

일반적으로 APT의 가장 심각한 종속성은 시스템에서 누락되지 않는 것입니다. 그러나 APT가 없기 때문에 무엇이든 가능합니다. 어쨌든 dpkg -I로 살펴본 후 나열된 종속성 중 하나가 부족하다는 것을 발견하면 앞에서 논의한 것처럼 내가 링크한 저장소의 상위 폴더를 살펴보십시오. 해당 알파벳 폴더에 있어야 합니다.

자주 묻는 질문

1. 안전하지 않은 APT 명령이 있습니까?

일반적으로 터미널에 APT 관련 항목을 입력하면 해당 명령이 수행하려는 작업을 알고 있어야 합니다. 주요 업데이트, 특히 새 커널을 설치하는 업데이트 전에 안전을 위해 시스템 전체를 백업하십시오.

그 모든 것을 제쳐두고 정말로 조심해야 하는 명령은 apt hold입니다. 및 apt full-upgrade /dist-upgrade . 전자는 앞에서 더 자세히 언급한 것처럼 보류를 해제할 때까지 시스템을 손상시킬 수 있습니다. 후자는 배포판에서 마이그레이션하려는 새 장기 버전을 릴리스할 때만 유용하지만 사용에 익숙한 설치된 패키지를 잠재적으로 제거할 수도 있습니다. 일반적인 apt upgrade를 수행하면 훨씬 더 안전한 영역에 있게 됩니다. , 다음 apt autoremove 수행 정말 먼지를 모으고 있는 패키지를 치우기 위해.

2. Apt-get보다 Apt가 더 낫습니까?

나는 이것이 피곤한 진술이라는 것을 알고 있지만 실제로 당신이하는 일에 달려 있습니다. 너무 많은 명령을 입력하여 손가락이 화상을 입습니까? apt를 사용할 수 있습니다. apt-get과 같은 특정 항목이 필요하지 않은 경우 바로 가기로 에 더 적합할 것입니다. 여러 면에서 apt는 패키지 관리 프로세스를 간소화할 뿐만 아니라 앞서 apt-get search를 비교할 때 본 것처럼 추가 정보를 제공합니다. apt search .

그러나 apt에 대한 방대한 인수 목록이 있는 Mint에 있지 않다면 거의 완전히 apt-get 렌더링 필요하지 않은 경우, 의존할 수 있는 더 오래된 학교를 갖는 것에 대해 기분이 좋을 수도 있습니다.

3. 저장소와 앱 스토어의 차이점은 무엇인가요?

일상적인 사용자에게는 그 차이가 전혀 놀랍지 않습니다. 사실, 그들은 매우 비교할 수 있습니다. 그들이 헤어지기 시작하는 곳은 소프트웨어 "대체 가능성"입니다. Linux는 사용자에게 때때로 압도적인 선택의 폭을 제공하는 매우 유동적인 소프트웨어 시장을 가지고 있습니다. 스마트폰 앱 스토어는 거의 고정되어 있으며 사용자가 대안을 찾는 것은 상상하기 어렵습니다.

동시에 이론적으로 사람들이 Ubuntu에서 즐겨 사용하는 PPA(Personal Package Archives)가 손상되어 악의적인 사용자에 의해 악성 소프트웨어가 확산될 수 있습니다.

여기서 한 가지 빼야 할 것이 있다면 탈중앙화에는 사용자의 책임이 따른다는 것입니다. 배포판에 추가하는 리포지토리가 신뢰할 수 있는 출처와 오랫동안 유지된 프로젝트인지 확인하세요.

결론

바라건대, 이 시점에서 APT의 전체 명령 및 도구 모음이 제공할 수 있는 기능을 이해할 때 얼마나 많은 권한이 부여되는지 관찰할 수 있기를 바랍니다. 컴퓨터에서 소프트웨어를 추가하고 제거하는 단순한 방법이 아닙니다. 그것은 당신이 거기에 넣은 것에 대해 더 많은 정보에 입각한 선택을 하고 발견할 수 있게 해주는 완전히 복잡한 프레임워크입니다.

Linux에서 백그라운드에서 Bash 명령을 실행하는 방법과 알아야 할 Linux LS 명령 15개를 읽으려면 계속 읽으십시오.