Untuk proyek yang sedang saya kerjakan, saya ingin membuat gambar "stok" berdasarkan Raspbian yang dapat saya instal di banyak Pis.
Idealnya saya ingin dapat (di komputer saya) mengambil gambar Raspbian, apt-get beberapa paket, mengedit beberapa konfigurasi dan kemudian membuat dan gambar kartu SD dari itu untuk memakai Pis saya.
Apakah ada cara sederhana atau yang disarankan untuk melakukan ini? Adakah jebakan yang mungkin saya temui?
Saya ingin menghindari bermain-main secara manual dengan pi dan kemudian mengkloning gambar itu. Agaknya Raspbian dibuat dengan cara yang bukan seseorang mengklik tombol secara manual pada Pi. Saya ingin melakukannya dengan cara itu, jika saya bisa.
Idealnya saya ingin membuat sesuatu yang dapat secara otomatis dibangun pada server integrasi berkelanjutan - Saya tidak ingin proses pembuatan yang melibatkan "menulis kartu SD, menaruhnya di Pi" karena saya ingin menjadi ale untuk membuat gambar tanpa akses fisik ke Raspberry Pi.
apt-get
; cara termudah untuk melakukannya adalah dengan menggunakan VM danrsync
dengan gambar yang dipasang identik dengan yang digunakan untuk memulai VM (karena gambar VM sendiri tidak baik untuk ini) tapi saya pikir satu-satunya pilihan VM di sini adalah QEMU, yang AFAICT adalah PITA.Jawaban:
Yayasan Raspberry Pi menggunakan satu set skrip bash yang mengotomatisasi QEMU untuk menghasilkan gambar mereka. Anda masih harus melihat buildroot "standar industri" dan Yocto juga.
https://github.com/RPi-Distro/pi-gen
http://cellux.github.io/articles/diy-linux-with-buildroot-part-1/
sumber
Proyek saya Nard SDK memiliki banyak fitur yang Anda inginkan. Ini bukan Raspbian tetapi memiliki emulasi biner Raspbian dan karenanya sangat dekat. Dengan Nard Anda membangun semuanya di PC dan prosesnya sangat cepat dan dapat direproduksi. Semuanya bisa skrip dan dapat dilakukan dengan misalnya integrasi berkelanjutan setiap malam.
http://www.arbetsmyra.dyndns.org/nard/
sumber
Menurut pendapat saya , melakukannya dengan cara yang Anda sarankan (pemasangan, melakukan solusi untuk memperbarui dan mengonfigurasi, dll.) Menghadirkan lebih banyak tantangan daripada solusi aktual . Tentu, mungkin menyenangkan untuk melakukannya dengan cara Anda jika Anda tertarik, tetapi cara terbaik dan termudah mungkin adalah yang Anda hindari.
Saya sarankan Anda mendapatkan Pi dan melakukan apa yang harus Anda lakukan, lalu membuat gambar kartu SD-nya. Kemudian, gunakan gambar itu di Pis Anda yang lain karena gambar itu sudah dikonfigurasi.
Catatan: Saya anggap Anda akan menggunakan Raspbian. Saya juga akan menganggap Anda hanya orang biasa dan bukan orang yang sering menyiapkan gambar (misalnya Raspberry Pi Foundation).
Langkah-langkah jika Anda lakukan bermain-main dengan Pi Anda:
apt-get update -y && apt-get upgrade
untuk memperbarui paketLangkah-langkah jika Anda tidak bermain-main dengan Pi Anda (lihat catatan di atas):
deb
file untuk setiap paket yang ingin Anda perbarui, ditambah dependensinya , ditambah dependensi dependensi tersebut , plus dependensi dependensi tersebut .apt-offline
itu merepotkan. Lihat tautan iniapt-get
tidak akan berfungsi offline.deb
detail file di sini . Semoga berhasil.Saya tidak melihat manfaat dari tidak bermain-main dengan Pi Anda.
Potong diri Anda sedikit kendor dan mengotak dengan Pi Anda. Anda hanya perlu melakukannya sekali.
sumber
Then find a way to install all of those packages without using/tinkering with your Pi.
dpkg
pada sistem itu sendiri, bukan pada gambar yang dipasang. Juga, OP berencana menggunakan PC-nya, jadi*.deb
file yang Anda miliki adalah untuk arsitektur yang salah sejak awal (PC adalah x86 / x64, Pi adalah ARMv6 / v7)I'll be honest and say that my impression is you are pursuing the Y side of an XY problem with too much vigour -- it's implied you think the simpler method (just set up an image on a pi, which can be done from a computer via remote login, and the image itself tweaked by mounting, which can be done on a PC, and all of this can be automated with scripting) is too much hassle, and so you have put your hopes in a method that is actually much more hassle.
Saya pikir apa yang Anda cari adalah semacam
(software) configuration management
. Dengan ini, Anda dapat mem-boot image raspbian stok dan kemudian mendorong konfigurasi Anda sendiri (termasuk paket baru dan sejenisnya). Ada banyak sistem SCM di luar sana. The downside adalah bahwa sebagian besar sistem ini ditujukan untuk mendukung jaringan skala besar dan mungkin sedikit berlebihan untuk tujuan Anda. Anda juga memerlukan semacam server penyediaan. SCM paling populer tampaknya adalah Wayang , Koki , Ansible . Artikel untuk Anda mulai:Ini semacam jawaban umum tetapi SCM adalah bidang yang luas. Mungkin ini layak untuk digali tergantung pada apa rencana Anda.
sumber