Quero escrever um script que produza a licença para cada pacote de software instalado no meu sistema.
Usando dpkg --get-selections
eu sou capaz de obter a lista de tudo instalado. No entanto, não vejo uma maneira de obter as informações de licença de cada pacote. Por exemplo, eu posso usar aptitude show
para obter as propriedades de cada pacote, mas isso não inclui a licença:
$ aptitude show apache2
Package: apache2
State: installed
Automatically installed: no
Version: 2.2.14-5ubuntu8.6
Priority: optional
Section: httpd
Maintainer: Ubuntu Developers <[email protected]>
Uncompressed Size: 36.9k
Depends: apache2-mpm-worker (= 2.2.14-5ubuntu8.6) | apache2-mpm-prefork (= 2.2.14-5ubuntu8.6) | apache2-mpm-event (= 2.2.14-5ubuntu8.6) | apache2-mpm-itk (= 2.2.14-5ubuntu8.6),
apache2.2-common (= 2.2.14-5ubuntu8.6)
Provided by: apache2-mpm-event, apache2-mpm-itk, apache2-mpm-prefork, apache2-mpm-worker
Description: Apache HTTP Server metapackage
The Apache Software Foundation's goal is to build a secure, efficient and extensible HTTP server as standards-compliant open source software. The result has long been the
number one web server on the Internet.
It features support for HTTPS, virtual hosting, CGI, SSI, IPv6, easy scripting and database integration, request/response filtering, many flexible authentication schemes, and
more.
Homepage: http://httpd.apache.org/
Existe um repositório de terceiros que correlaciona a licença a cada pacote?
Parece doloroso fazer o download de todos os pacotes de origem e inspecioná-los para obter informações de licenciamento, mas talvez seja a melhor maneira.
Respostas:
Aqui está o que eu acabei fazendo. (resulta em
~/licenses.txt
todas as licenças existentes/usr/share/doc
)fonte
grep '^' /usr/share/doc/*/copyright
você obterá as mesmas informações outail -n 10000 /usr/share/doc/*/copyright
se não desejar o prefixo do nome do arquivo em todas as linhas.Em 2012, o Debian lançou o documento debian / copyright legível por máquina, que tornará as licenças legíveis no futuro. Atualmente, nem todos os pacotes usam esse formato. O comando
ainda devolve muito lixo. Para uma saída melhor, você provavelmente precisará de uma ferramenta que analise cada arquivo, dependendo do
Format:
valor do campo.Uma maneira completamente diferente é a estrutura do arquivo em
/usr/share/common-licenses/
(thx para /programming/1884753/license-info-of-a-deb-package#1884785 ). Ele lista as principais licenças usadas nas distribuições baseadas no debian (e contém seus textos de licença). Esta lista é fornecida pelo pacotebase-files
e não está vinculada à lista de pacotes instalados, mas provavelmente são informações suficientes para o chefe / cliente médio.Atualização Acabei de publicar uma solução simples de linha de comando que extrai as informações de licença dos arquivos de direitos autorais com muitas heurísticas. https://github.com/daald/dpkg-licenses . Sinta-se livre para experimentar. Todas as sugestões são bem-vindas.
fonte
Eu apenas tropeço nas licenças do dpkg ( https://github.com/daald/dpkg-licenses ).
Apenas clone o repositório
Então
E você tem os melhores softwares de hoje instalados, versões e licenças da lista tabular que você pode sonhar ...
fonte