
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
.