Saya ingin menulis skrip yang mengeluarkan lisensi untuk setiap paket perangkat lunak yang diinstal pada sistem saya.
Dengan menggunakan dpkg --get-selections
saya bisa mendapatkan daftar semua yang diinstal. Namun, saya tidak melihat cara untuk mendapatkan informasi lisensi untuk setiap paket. Misalnya, saya bisa menggunakan aptitude show
untuk mendapatkan properti dari setiap paket, tetapi itu tidak termasuk lisensi:
$ 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/
Apakah ada repositori pihak ketiga yang mengkorelasikan lisensi ke setiap paket?
Kedengarannya menyakitkan untuk mengunduh setiap paket sumber dan memeriksanya untuk informasi lisensi, tetapi mungkin itu cara terbaik.
Jawaban:
Inilah yang akhirnya saya lakukan. (hasil
~/licenses.txt
dengan semua lisensi yang ada di/usr/share/doc
)sumber
grep '^' /usr/share/doc/*/copyright
akan memberi Anda banyak informasi yang sama, atautail -n 10000 /usr/share/doc/*/copyright
jika Anda tidak ingin awalan nama file di setiap baris.Pada tahun 2012, Debian merilis dokumen yang dapat dibaca Mesin debian / hak cipta yang akan membuat lisensi dapat dibaca di masa depan. Saat ini, tidak semua paket menggunakan format ini. Perintah
masih mengembalikan banyak sampah. Untuk hasil yang lebih baik Anda mungkin perlu alat yang mem-parsing setiap file tergantung pada nilai
Format:
bidang.Cara yang sama sekali berbeda adalah struktur file di
/usr/share/common-licenses/
(thx to /programming/1884753/license-info-of-a-deb-package#1884785 ). Itu daftar lisensi utama yang digunakan dalam distribusi berbasis debian (dan berisi teks lisensi mereka). Daftar ini disediakan oleh paketbase-files
dan tidak ditautkan ke daftar paket yang diinstal, tetapi itu mungkin informasi yang cukup untuk bos / pelanggan rata-rata.Pembaruan Saya baru saja menerbitkan solusi baris perintah sederhana yang mengekstrak informasi lisensi dari file hak cipta dengan banyak heuristik. https://github.com/daald/dpkg-licenses . Jangan ragu untuk mencobanya. Setiap saran dipersilahkan.
sumber
Saya hanya menemukan dpkg-licenses ( https://github.com/daald/dpkg-licenses ).
Klon repo saja
Kemudian
Dan Anda memiliki yang terbaik dari perangkat lunak saat ini diinstal, versi dan daftar lisensi tabular yang dapat Anda impikan ...
sumber