검색 결과에서 APK 패키지 이름을 확인하는 방법

검색 결과에서 APK 패키지 이름을 확인하는 방법

Alpine Linux에서 의 결과를 바탕으로 apk search에 제공할 패키지 이름을 어떻게 결정합니까 apk add?

예를 들어, "lighthttpd" 철자를 잊어버렸거나 패키지 이름이 무엇인지 정확히 잊어버렸다고 가정해 보겠습니다. apk search "lightt*"내 컴퓨터(Docker 이미지)에서 다음을 생성하는 작업을 수행할 수 있습니다 .

lighttpd-mod_auth-1.4.45-r1
acf-lighttpd-0.6.0-r2
lighttpd-mod_webdav-1.4.45-r1
lighttpd-1.4.45-r1
lighttpd-doc-1.4.45-r1
lighttpd-dbg-1.4.45-r1

위와 같이 입력해야 한다는 것을 어떻게 알 수 있습니까 apk add lighttpd? 순진하게 입력했는데 apk add lighttpd-1.4.45-r1오류가 발생했습니다.

ERROR: unsatisfiable constraints:
  lighttpd-1.4.45-r1 (missing):
    required by: world[lighttpd-1.4.45-r1]

나는 apt-cache search검색 결과의 각 줄에 다음이 포함되는 Debian과 같은 작업에 익숙합니다.정확히에 입력할 패키지 이름입니다 apt-get install.

답변1

apk search다음을 전달하여 버전 번호를 포함하지 않도록 알 수 있습니다 -q/--quiet.

$ apk -q search "lightt*"
lighttpd-mod_auth
acf-lighttpd
lighttpd-mod_webdav
lighttpd
lighttpd-doc
lighttpd-dbg

패키지가 어떤 버전을 제공하는지 알고 싶다면 좀 더 복잡해집니다.

apk info lighttpd | head -n1 | sed 's/^lighttpd-\(.*\) description:/\1/g'

다음은 패키지 버전을 가져오는 간단한 함수입니다.

apkver() {
    apk info "$1" | head -n1 | sed "s/^$1-\(.*\) description:/\1/g"
}

답변2

이 문제는 apk저장소가 업데이트되지 않았기 때문에 발생할 가능성이 높습니다.

그것은 나에게 잘 작동합니다.

monitor:~# apk search lighttpd
lighttpd-mod_auth-1.4.45-r1
acf-lighttpd-0.6.0-r2
lighttpd-mod_webdav-1.4.45-r1
lighttpd-1.4.45-r1
lighttpd-doc-1.4.45-r1
lighttpd-dbg-1.4.45-r1
monitor:~# apk add lighttpd
(1/10) Installing libev (4.24-r0)
(2/10) Installing libintl (0.19.8.1-r1)
(3/10) Installing libmount (2.28.2-r2)
(4/10) Installing glib (2.52.1-r0)
(5/10) Installing gamin (0.1.10-r10)
(6/10) Installing db (5.3.28-r0)
(7/10) Installing libsasl (2.1.26-r10)
....

먼저 apk update.

관련 정보