쉘 스크립트에서 apt 또는 apt-get을 사용해야 합니까?

쉘 스크립트에서 apt 또는 apt-get을 사용해야 합니까?

apt이는 Linux 배포판에 권장되는 명령입니다. 패키지 관리에 필요한 옵션을 제공합니다. 옵션이 적지만 기억하기 쉽고 사용하기가 더 쉽습니다.

인용된 대로폭스 웹사이트

apt-get의 더 많은 기능을 활용하는 특정 작업을 수행하려는 경우가 아니면 apt-get을 고수할 이유가 없습니다.

  1. aptapt-get 및 apt-cache 명령의 하위 집합으로, 패키지 관리에 필요한 명령을 제공합니다.
  2. apt-get은 더 이상 사용되지 않지만 일반 사용자는 apt를 더 자주 사용해야 합니다.

쉘 스크립트에서 사용할 때 이 오류가 발생 apt하고 이를 사용할 때 이 오류가 발생하지 않습니다 apt-get."

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

내 질문은 다음과 같습니다

  1. apt안정적인 CLI 인터페이스가 없는 이유는 무엇입니까 ?
  2. apt조심스럽게 또는 안전하게 사용하는 방법은 무엇입니까 ?
  3. 이 오류 메시지를 비활성화하려면 어떻게 해야 합니까?

답변1

apt권장되는 명령입니다인터렉티브관리자가 사용하며 쉘 스크립트에서는 사용할 수 없습니다.

이 문제는 대부분 해결되었습니다apt맨페이지:

이것적당한(8)명령줄은 최종 사용자 도구로 설계되었으며 버전 간에 동작이 변경될 수 있습니다. 이전 버전과의 호환성을 유지하려고 시도하지만 변경 사항이 대화형 사용에 도움이 되는 경우에는 이를 보장할 수 없습니다.

모든 기능적당한(8)다음과 같은 전용 APT 도구에서 사용 가능적절한-겟(8)그리고적절한 캐시(8)게다가.적당한(8)일부 옵션의 기본값을 변경하면 됩니다(참조apt.conf(5)특히 바이너리 범위). 따라서 가능한 한 이전 버전과의 호환성을 유지하므로 스크립트에서 이러한 명령을 사용하는 것이 좋습니다(일부 추가 옵션이 활성화될 수도 있음).

그러므로:

  1. apt유익한 것으로 간주되는 주요 변경을 허용하는 안정적인 CLI 인터페이스는 없습니다.

  2. 당신은 할 수 없습니다. 도구는 분명히 그것을 위해 설계되지 않았습니다.

  3. 스크립트에서 사용 apt-get하거나 오류 메시지를 방지합니다.apt-cache

답변2

apt-get이미 존재했고 스크립팅 인터페이스를 변경할 타당한 이유가 없었기 때문에 apt직접적인 대화형 사용을 위해 특별히 도입되어 최대한 "친숙하게" 만들 수 있었습니다.아니요완전한 이전 버전과의 호환성에 주의해야 합니다. 따라서 apt-get향후 인터페이스 변경을 방지하려면 스크립트에서만 이를 사용해야 합니다.

OTOH는 apt"친절하게" 설계되었기 때문에 그것이 말하는 내용에 주의를 기울이는 한 안전할 것입니다.

나는 추측하고 있습니다(그러나 아직 테스트하지는 않았습니다). apt로그인 셸의 직접적인 하위 항목으로 실행하면 대화식으로 실행되고 있다고 생각할 수 있으므로 다음과 같은 것을 실행해 보십시오 sh -l -c "apt $ARGS".

관련 정보