¿Cómo puedo saber la licencia de cada una de mis aplicaciones/paquetes instalados?

¿Cómo puedo saber la licencia de cada una de mis aplicaciones/paquetes instalados?

Estoy usando Ubuntu-15.10. He instalado muchas aplicaciones además de las instalaciones básicas.

Ahora, me gustaría saber cuántos paquetes instalados tienen licencia GPL o licencias de terceros (por ejemplo, Fluendo).

¿Hay alguna manera de saber esto? ¿O necesito verificar manualmente todas y cada una de las licencias de cada aplicación instalada?

EDITAR:

El siguiente fragmento que utilicé para enumerar el nombre de varios archivos de licencia instalados.

find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u

Respuesta1

Las licencias de los paquetes se describen en /usr/share/doc/${package}/copyright. Este archivo es necesario para especificar la licencia principal del paquete; muchos paquetes usan uncopyrightarchivo legible por máquinaque enumera las licencias de cada archivo en el paquete fuente.

Para archivos legibles por máquina, puede utilizar la License:línea que introduce las licencias:

awk '/^License:/ { print $2 }' /usr/share/doc/*/copyright | sort -u

Si está buscando una licencia documentada en /usr/share/common-licenses, puede buscar menciones de ésta en los copyrightarchivos;p.ejpara contar el número de paquetes con licencia GPL o LGPL:

grep -l GPL /usr/share/doc/*/copyright | wc -l

Para contar solo la cantidad de paquetes fuente, cuente la cantidad de archivos únicos (los paquetes binarios enviados desde un único paquete fuente tienen exactamente el mismo copyrightarchivo o enlace al mismo archivo):

md5sum $(grep -l GPL /usr/share/doc/*/copyright) | sort -k1,1 -u | wc -l

Debsources proporciona varias formas de buscarcopyrighttodos los archivos de Debian;aquí hay una sola líneapara recuperar la licencia de un solo archivo (si su paquete utiliza un formato legible por máquina). (La licencia de esa frase no está documentada, por lo que solo la vinculo, no la copio aquí).

Tenga en cuenta que dado que los copyrightarchivos documentan las licencias de los paquetes fuente, es posible que documenten archivos que no se envían en paquetes binarios y no afectan la licencia del paquete binario; Este puede ser el caso, por ejemplo, de archivos con licencia GPL que sólo se utilizan durante la compilación de un paquete sin licencia GPL.

Respuesta2

La mayor parte de la información sobre licencias de software está disponible en/usr/share/doc/pkg-name/copyright

Aproximadamente se puede estimar el número de programas utilizados GPLmediante:

  • grep -l GPL /usr/share/doc/*/copyright

    Pero greptambién incluirá archivos que sean enlaces en lugar de archivos normales. Entonces, recomiendo usar findde la siguiente manera:

  • sudo find /usr/share/doc -name copyright -type f -exec grep -l "GPL" '{}' \; | wc -l

    También incluirá archivos como /usr/share/doc/ca-certificates/examples/ca-certificates-local/debian/copyright. Si no desea que se cuenten, puede especificarlos maxdepthcon buscar.

Ejemplo (en mi sistema):

$ grep -l GPL /usr/share/doc/*/copyright | wc -l
1949

$ sudo find /usr/share/doc -name copyright -type f -exec grep -l "GPL" '{}' \; | wc -l
1889

Tenga en cuenta que un software puede incluir más de una licencia por archivo en formato copyright.

Respuesta3

El siguiente código me ayudará a enumerar las licencias instaladas de varias aplicaciones en Ubuntu 15.04.

find /usr/share/doc -type f -name copyright -exec grep "License\:" {} + | cut -f3 -d: | sort -u

Respuesta4

Solo tengo sistemas CentOS a mano, puedes mostrar el nombre del paquete y la información de la licencia con lo siguiente:

$ rpm -qa --qf "%{name}: %{license}\n"
...
ncurses: MIT
cairo: LGPLv2 or MPLv1.1
dbus-python: MIT
media-player-info: BSD
dbus-x11: GPLv2+ or AFL
NetworkManager: GPLv2+
...

Debería poder hacer algo similar dpkg-query --licenseen los sistemas Ubuntu.

Comoaquí, donde suele $ dpkg-query -f='${PackageSpec;-30}\t${Homepage}\n' -W "*"mostrar solo un subconjunto de información por paquete. Verifique las dpkg-queryopciones para ver si puede obtener el formulario de licencia allí.

Otropublicación interesanteal respecto, habla exactamente de esta problemática y que:

Por el momento, esto no tiene suficiente soporte, aunque se está realizando un esfuerzo para proporcionar información legible por máquina en los /usr/share/doc/*/copyrightarchivos.

información relacionada