Dalam artikel ini, kita akan melihat secara singkat tahap-tahap utama pembuatan paket Cokelat.
Prasyarat
Sebelum memulai pembuatan paket Cokelat, pastikan Anda perlu:
- telah memasang Chocolatey;
- baca Apa itu Paket Coklat? bagian dari dokumentasi Cokelat;
- mengetahui cara kerja sebuah paket. Secara khusus, Anda menyadari bahwa:
- paket berisi *.nuspe berkas c. Ini mendefinisikan paket. (Dokumen);
- sebuah paket mungkin berisi perangkat lunak yang disematkan;
- sebuah paket mungkin berisi skrip instalasi.
- paket berisi *.nuspe berkas c. Ini mendefinisikan paket. (Dokumen);
Paket Cokelat terdiri dari elemen utama berikut:
- A *.nuspec mengajukan. Langkah ini wajib.
- The chocolateyInstall.ps1 berkas.
- Berkas aplikasi apa pun yang akan disertakan (dalam hal ini sangat disarankan agar Anda adalah pembuatnya atau Anda memiliki hak untuk mendistribusikan file). *.exe file dalam paket/diunduh ke folder paket dari chocolateyInstall.ps1 akan memiliki tautan ke baris perintah.
- cokelatUninstall.ps1 untuk mencopot paket Anda.
Saya sarankan Anda untuk melihat video yang menunjukkan pembuatan paket. Harap perhatikan bahwa video tersebut menampilkan konten chocolateyInstall.ps1 yang agak ketinggalan zaman. . Saat ini, chocolateyInstall.ps1 terlihat seperti berikut:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Jendela Cokelat package manager menggunakan infrastruktur yang sama dengan NuGet, yaitu Visual Studio manajer paket. Oleh karena itu, paket-paket tersebut didasarkan pada prinsip yang sama, termasuk yang menyatakan bahwa deskripsi paket (spesifikasi) harus disimpan dalam format XML, yang dikenal sebagai Nuspec.
*.nuspec file berisi informasi dasar seperti versi, lisensi, pengelola, dan dependensi paket. Chocolatey menyertakan fungsionalitas opsional tambahan di bagian paling atas NuGet *.nuspec mengajukan. Jadi, cara terbaik untuk menentukan fitur yang saat ini didukung adalah dengan membuat paket pengujian, dan melihat file *.nuspec yang dihasilkan:
choco new testpackage
Catatan: Jika paket Anda menggunakan fungsionalitas yang baru saja diperkenalkan, Anda mungkin ingin menyertakan dependensi yang menunjukkan versi Chocolatey terendah yang mendukung fungsionalitas yang diperlukan. Jika tidak, penginstalan dapat gagal untuk pengguna yang menginstal versi Chocolatey yang lebih lama.
Anda dapat menunjukkan ketergantungan Cokelat seperti ketergantungan lainnya, mis.:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Panduan Memulai Cepat
- Buat paket baru :
- The
choco new -h
perintah akan membantu Anda mengatur opsi paket. - Setelah Anda mengetahui semua opsi, Anda dapat melanjutkan dengan membuat template Anda.
- The
- Edit template yang sesuai :
cd package-name
- Edit
package-name.
file konfigurasi nuspec. - Edit
./tools/chocolateyInstall.ps1
instal skrip.- Pastikan Anda mengonfigurasi mode diam penginstal. Gunakan Universal Silent Switch Finder, yang tersedia sebagai paket Choco:
choco install ussf.
- Anda perlu menyimpan file Anda dengan pengkodean karakter UTF–8 tanpa BOM.
- Pastikan Anda mengonfigurasi mode diam penginstal. Gunakan Universal Silent Switch Finder, yang tersedia sebagai paket Choco:
- Buat paketnya :
- Masih dalam direktori paket.
choco pack
- “Berhasil membuat nama paket.1.1.0.nupkg”.
- Uji paketnya :
- Pengujian harus dilakukan pada mesin virtual.
- Di direktori paket Anda, gunakan:
choco install package-name -s
package-name
adalah elemen id dalam nuspec
- Dorong paket ke repositori paket komunitas Chocolatey:
- Dapatkan akun Cokelat:
- Daftar.
- Salin kunci API dari akun Chocolatey Anda.
choco apikey -k [API_KEY_HERE] -source https://push.chocolatey.org/
choco push package-name.1.1.0.nupkg -s https://push.chocolatey.org/
– *.nupkg file dapat dihilangkan jika itu adalah satu-satunya di direktori.
- Dapatkan akun Cokelat:
Contoh
Berikut adalah beberapa contoh sederhana.
Catatan :Contoh yang diberikan mungkin memerlukan pembaruan checksum dan konsep paket yang lebih baru. Jalankan choco new
saat membuat paket karena berisi catatan terbaru.
chocolateyInstall.ps1 untuk penginstal .exe
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Catatan :Anda perlu mengatur sakelar baris perintah untuk membuat penginstal diam, mis. ./VERYSILENT
Nama sakelar bervariasi, tergantung pada penginstal.
chocolateyInstall.ps1 untuk penginstal .msi
CATATAN :Anda perlu menjaga kompatibilitas dengan Posh v2. Tidak setiap OS yang didukung ada di Posh v2 (juga OOB dengan Posh v3+). Praktik terbaik adalah bekerja dengan kompatibilitas sistem terluas di luar sana.
$packageName = 'Package Name' $installerType = 'msi' $url = 'http://path/to/download/installer_x86.msi' $url64 = 'http://path/to/download/installer_x64.msi' $silentArgs = '/quiet' $validExitCodes = @(0,3010) Install-ChocolateyPackage $packageName $installerType $silentArgs $url $url64 -validExitCodes $validExitCodes
Menguji Paket Anda
Catatan 1 :Saya sangat menyarankan untuk melakukan pengujian pada mesin virtual, bukan pada mesin kerja Anda.
Catatan 2 :Pengujian paket dapat dilakukan dengan cara yang sama seperti verifikator. Lihatlah Pengujian Pemverifikasi Cokelat.
Untuk menguji paket yang baru dibuat, buka shell baris perintah, dan navigasikan ke direktori tempat *.nupkg file berada. Kemudian ketik berikut ini:
choco install packageName -dv -s .
Perintah ini akan menginstal paket langsung dari sumber Anda. Jika Anda menemukan hal yang perlu diperbaiki, gunakan --force (-f)
untuk menghapus dan menginstal ulang paket dari *.nupkg . yang diperbarui . Jika Anda secara khusus menguji chocolateyBeforeModify.ps1 , Anda perlu menguji skenario peningkatan dan penghapusan instalasi. Anda perlu menginstal versi paket dengan file ini terlebih dahulu karena serupa t0 uninstall, sebelum memodifikasi dijalankan dari paket yang diinstal, bukan paket yang Anda instal (seperti chocolateyInstall.ps1 tidak).
Catatan 1 :Force --force (-f)
harus digunakan hanya selama pengujian berikutnya saat Anda menginstal ulang paket yang sama yang telah Anda ubah dan tidak boleh digunakan dalam skenario penggunaan biasa. Seharusnya tidak ada dalam skrip.
Catatan 2 :Jika Anda menggunakan tanda hubung Semver dalam versi paket Anda (seperti 1.0.0-beta ), Anda perlu menggunakan -pre
mengalihkan. Jika tidak, Anda akan mendapatkan 'Paket tidak dapat ditemukan ' kesalahan dari choco install. Anda juga dapat menentukan -version 1.0.0-beta
untuk menginstal versi yang tepat.
Karakter titik menunjuk ke direktori saat ini. Anda dapat menentukan beberapa direktori yang dipisahkan oleh titik koma.
Dorong Paket Anda
Untuk mendorong paket Anda setelah Anda membuat dan mengujinya, ketik berikut ini:
choco push packageName.nupkg -s sourceLocation
Dimana:
packageName.nupkg
adalah nama nupkg yang dibangun dengan nomor versi sebagai bagian dari nama paket;sourceLocation
adalah lokasi sumber yang ingin Anda dorong (mis.-s https://chocolatey.org/
untuk umpan komunitas Cokelat).
Anda harus memiliki kunci API untuk https://chocolaty.org/ set. Lihat choco push.
Anda juga dapat masuk ke chocolatey.org dan mengunggah paket Anda dari sana (tidak disarankan untuk paket di atas 2MB).
Referensi
Anda dapat menggunakan sumber daya berikut untuk mengetahui lebih lanjut tentang pembuatan dan distribusi paket Chocolatey:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm Cokelat ent