Arch/pacman을 사용할 때 소프트웨어 패키지의 라이센스를 어떻게 쿼리합니까?

Arch/pacman을 사용할 때 소프트웨어 패키지의 라이센스를 어떻게 쿼리합니까?

그냥 설치해도 되나요?무료아치 리눅스의 패키지? 아니면 설치하기 전에 패키지 라이센스를 문의하시겠습니까? -Q특정 라이센스의 텍스트를 검색하는 데 사용할 수 있다고 생각 하지만 이는 과도한 것 같습니다.

답변1

expac[추가]의 apm 데이터 도구를 사용하여 이 작업을 수행 할 수 있습니다 . 예를 들어, Apache 라이센스 소프트웨어 저장소를 검색하려면 다음을 수행하십시오.

 expac -Ss '%L - %n' '^Apache'

참고: expac은 대상의 전체 검색을 수행하므로 추가 필터링이 필요할 수 있습니다.

하지만 궁극적으로 무료 소프트웨어만 원한다면포물선리눅스, 이는 Arch를 기반으로 하지만 별도의 배포판입니다.

답변2

pacman 명령의 / 또는 / 옵션을 사용하면 -i라이센스가 포함됩니다 . jasonwryan이 제안한 대로 다른 소프트웨어를 설치할 필요가 없습니다.--info-Q--query-S--sync

다음은 결과의 몇 가지 예입니다 pacman -Si glibc.

Name            : glibc
Version         : 2.33-4
Description     : GNU C Library
Architecture    : x86_64
URL             : https://www.gnu.org/software/libc
Licenses        : GPL  LGPL
Groups          : None
Provides        : None
Depends On      : linux-api-headers>=4.10  tzdata  filesystem
Optional Deps   : gd: for memusagestat
Conflicts With  : None
Replaces        : None
Download Size   : 9.84 MiB
Installed Size  : 46.04 MiB
Packager        : Allan McRae <[email protected]>
Build Date      : Sat 13 Feb 2021 04:39:21 PM EST
Validated By    : MD5 Sum  SHA-256 Sum  Signature

이제 출력을 sed로 파이프하여 bash 스크립트로 만들 수 있습니다.

#!/bin/bash

pacman -Si "$@" | sed -E -n 's/Licenses\s*?:\s+(.+)/\1/p'

# "$@"       | pass through arguments (same as $1 $2 $3 ...)

# sed        | stream editor
# -E         | extended (better) regex
# -n         | disable default printing of all lines

# s/         | substitution command
#   Licenses | literal string "Licenses"
#   \s*      | zero or more whitespace characters
#   :        | literal character ":"
#   \s+      | one or more whitespace characters
#   (.+)     | capture rest of line after non-whitespace
# /\1        | replace with first capture group (.+)
# /p         | re-enable printing, but only for matches

출력 예 pacman-license glibc curl ffmpeg(주석 있음):

GPL  LGPL    # glibc
MIT          # curl
GPL3         # ffmpeg

관련 정보