다양한 배포판 목록에서 패키지를 설치하는 방법은 무엇입니까?

다양한 배포판 목록에서 패키지를 설치하는 방법은 무엇입니까?

pkglist.txt모든 배포판에 설치할 수 있는 방법이 있다면 좋겠지만 적어도 Manjaro와 Ubuntu에 설치된 패키지 목록을 갖고 싶습니다 . 어떻게 해야 하나요?

나는 다음과 같은 것을 생각했습니다.

# If on Manjaro:
yay -S --no-confirm --needed - < pkglist.txt
# Else if on Ubuntu:
xargs sudo apt install < pkglist.txt

문제는 많은 Unable to locate package오류가 발생한다는 것입니다. 파일에서 패키지를 하나씩 설치하고 오류를 무시할 수 있습니다.

답변1

이것은 기본적으로 "다른 배포판은 다릅니다"로 귀결됩니다. 일반적으로 이것은 불가능합니다. 두 배포판 모두에 대한 패키지 이름 목록을 유지해야 합니다.

자동화할 수 있는 몇 가지 요령이 있습니다.

  • 대부분의 배포판에서는 어떤 패키지가 특정 파일을 제공하는지 패키지 저장소에 물어볼 수 있습니다. 예를 들어, 해당 파일이 호출될 것이라는 것을 안다면 debian, ubuntu 등에서 find package를 사용할 수 있습니다 /usr/bin/oocalc. Fedora/RHEL에서도apt-file search /usr/bin/oocalc 마찬가지입니다. dnf repoquery --whatprovidesoids, 나는 Arch/Manjaro가 비슷한 도구를 가지고 있다고 확신합니다. 그러나 배포판에 따라 파일이 다른 위치에 배치될 수 있으므로 이 모든 것이 빠르게 분석됩니다. 예를 들어 일부 배포판에서는 아키텍처 접두사를 사용합니다. 또한 동일한 파일을 제공하는 여러 패키지가 있을 수 있습니다. (예: 동일한 프로그램의 다른 버전, 커뮤니티 대 업스트림 패키지 등. 예는 mariadb/mysql을 참조하세요.)
  • 물론 패키지 이름에서 가장 적합한 패키지를 자동으로 추측하고 유사 일치하도록 시도할 수 있습니다. 행운을 빌어요! 일반적으로 100% 성공률을 얻을 수는 없습니다.
  • 머신 프로비저닝을 자동화하려는 것처럼 들리므로 다른 사람이 유지 관리하는 ansible 역할을 사용하면(따라서 다른 사람이 "이 패키지는 어떤 패키지를 설치합니까?" 목록을 유지 관리함) 동시에 여러 문제를 해결할 수 있습니다.

관련 정보