포티지에 설치할 수 있는 패키지 이름 목록 얻기

포티지에 설치할 수 있는 패키지 이름 목록 얻기

저는 Chromebook용으로 개발 중입니다. Chrome OS는 Gentoo를 기반으로 하기 때문에 개발자 모드에서 사용할 수 있는 패키지 관리 시스템은 Portage입니다. emerge패키지를 설치하는 데 사용되는 명령이지만 명령이 매우 복잡하고 이해하기 어렵고 원하는 작업을 수행하는 방법에 대한 명확한 지침이 없습니다.

나는 두 가지 일을 할 수 있기를 원합니다:

  1. 설치된 패키지의 이름을 나열합니다.
  2. 설치할 수 있는 패키지 이름을 나열합니다.

NAME두 경우 모두 패키지의 "이름"은 emerge NAME해당 패키지를 설치하기 위해 명령에서 대체되는 정확한 문자열입니다.

첫 번째 문제에 대한 해결책이라고 생각되는 내용을 썼는데, 두 번째 문제에 대한 해결책은 별로 만족스럽지 못했습니다.

lipkgs설치된 패키지( ) 를 나열하는 스크립트는 다음과 같습니다 .

#!/bin/bash

cat /usr/local/var/lib/portage/world | sed "s/^.*\\///" | sort

사용 가능한 패키지를 나열하는 스크립트( )는 다음과 같습니다 lapkgs.

#!/bin/bash

cat /usr/local/portage/packages/Packages | grep "^CPV: " | sed "s/^CPV: .*\\///g" | sort

처음 이 글을 썼을 때 lapkgs, 나는 이것이 /usr/local/portage/packages/Packages포티지에 연결하도록 설정된 모든 저장소에서 사용할 수 있는 모든 패키지를 포함하는 일종의 캐시 파일이라고 생각했습니다. 내 첫 번째 문제는 출력에 다음과 같은 이름이 포함되어 있다는 것입니다 xxd-1.10-r3. 이 이름은 설치하기 위해 입력한 이름이 아니지만 xxd현재 패키지 개정 이름 등이 패키지마다 변경되므로 일반 프로그램을 작성할 수 없습니다. 그들을 청소하기 위해. 나중에 깨달은 두 번째 문제는 거기에 있는 이름이 /usr/local/portage/packages/Packages아마도 사용 가능한 패키지 목록이 아니라 일종의 설치된 패키지 목록과 가상 패키지 목록이라는 것입니다.

내가 성취하고 싶은 것을 어떻게 합니까?

답변1

모든 패키지를 나열합니다. equery list '*'

옆에 I가 있으면 설치된 것입니다.

에서:https://wiki.gentoo.org/wiki/Equery

관련 정보