저는 Chromebook용으로 개발 중입니다. Chrome OS는 Gentoo를 기반으로 하기 때문에 개발자 모드에서 사용할 수 있는 패키지 관리 시스템은 Portage입니다. emerge
패키지를 설치하는 데 사용되는 명령이지만 명령이 매우 복잡하고 이해하기 어렵고 원하는 작업을 수행하는 방법에 대한 명확한 지침이 없습니다.
나는 두 가지 일을 할 수 있기를 원합니다:
- 설치된 패키지의 이름을 나열합니다.
- 설치할 수 있는 패키지 이름을 나열합니다.
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
아마도 사용 가능한 패키지 목록이 아니라 일종의 설치된 패키지 목록과 가상 패키지 목록이라는 것입니다.
내가 성취하고 싶은 것을 어떻게 합니까?