snap
安装后sudo snap install [package]
,如何列出我的机器上所有具有专有许可证的软件包?为了决定什么是开源,什么不是我喜欢的Debian 自由软件指南。
例如spotify
Details for Spotify
License
Proprietary
答案1
获取所有 snap 包:
snap list
获取详细信息(包括许可证):
snap info <package name>
因此
for p in $(snap list | awk 'NR > 1 { print $1 }') ; do
snap info $p | grep license
done
会列出每个 snap 的许可证,然后您可以随意过滤。现在,license
我拥有的几个 snap 中的参数是unset
。除了snapd
,它有GPL-3.0
,而不是GPL-3.0+
显示的。这里。
因此,显然,要获得每个快照的实际许可证,您必须编写一个脚本来从 检索信息https://snapcraft.io/<package name>
,或者更好的是从snap info <package name> | grep store-url
(可能在所有情况下都一样,但我不敢打赌)。没什么大不了的,但可能也不是预料之中的。
添加脚本正如@Xosrov 评论的那样
#!/usr/bin/env bash
for i in $(snap list | awk 'NR > 1 {print $1}') ; do
url="https://snapcraft.io/${i}"
echo "${url}"
site=$(curl -s "${url}")
for j in $site ; do
res=$(echo "$j" | awk -F'>' '$0~"data-live=\"license"{print $2}')
if [ -n "$res" ] ; then
echo "License for ${i}: ${res:0:$((${#string}-4))}"
break
fi
done
done