В тази статия ще разгледаме накратко ключовите етапи от създаването на пакети Chocolatey.
Предварителни условия
Преди да започнете със създаването на шоколадов пакет, уверете се, че трябва:
- да има инсталиран Chocolatey;
- прочетете Какво представляват шоколадовите пакети? раздел от документацията на Chocolatey;
- знайте как работи пакетът. По-конкретно, знаете, че:
- пакетът съдържа *.nuspe c файл. Това дефинира пакета. (Документи);
- пакет може да съдържа вграден софтуер;
- пакет може да съдържа инсталационен скрипт.
- пакетът съдържа *.nuspe c файл. Това дефинира пакета. (Документи);
Шоколадовата опаковка се състои от следните основни елементи:
- А *.nuspec файл. Тази стъпка е задължителна.
- chocolateyInstall.ps1 файл.
- Всички файлове на приложения за включване (силно препоръчително е вие да сте авторът в този случай или да имате право да разпространявате файлове). *.exe файловете в пакета/изтеглени в папката на пакета от chocolateyInstall.ps1 ще имат връзка към командния ред.
- chocolateyUninstall.ps1 за деинсталиране на вашия пакет.
Препоръчвам ви да разгледате видеото, показващо създаването на пакета. Моля, имайте предвид, че видеоклипът включва малко остаряло съдържание на chocolateyInstall.ps1 . В моментаchocolateyInstall.ps1 изглежда по следния начин:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Chocolatey Windows мениджърът на пакети използва същата инфраструктура като NuGet, тоест Visual Studio пакетен мениджър. Следователно пакетите се основават на едни и същи принципи, включително този, който гласи, че описанието (спецификацията) на пакета трябва да се съхранява в XML формат, известен като Nuspec.
*.nuspec Файлът съдържа такава основна информация като зависимости от версията, лиценза, поддръжката и пакета. Chocolatey включва допълнителна незадължителна функционалност в самия връх на NuGet *.nuspec файл. По този начин най-добрият начин да определите поддържаните в момента функции е да създадете тестов пакет и да разгледате генерирания файл *.nuspec:
choco new testpackage
Забележка: Ако вашият пакет използва наскоро въведената функционалност, може да искате да включите зависимост, указваща най-ниската Chocolatey версия, която поддържа необходимата функционалност. В противен случай инсталацията може да се провали за потребителите, които имат инсталирана по-стара версия на Chocolatey.
Можете да посочите зависимостта Chocolatey като всяка друга зависимост, напр.:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Ръководство за бързо начало
- Генерирайте нов пакет :
choco new -h
командата ще ви помогне да настроите опциите на пакета.- След като разберете всички опции, можете да продължите с генерирането на своя шаблон.
- Редактирайте съответно шаблона :
cd package-name
- Редактирайте
package-name.
nuspec конфигурационен файл. - Редактирайте
./tools/chocolateyInstall.ps1
скрипт за инсталиране.- Уверете се, че сте конфигурирали тихия режим на инсталатора. Използвайте Universal Silent Switch Finder, който се предлага като пакет Choco:
choco install ussf.
- Трябва да запазите файловете си с кодиране на символи UTF–8 без спецификация.
- Уверете се, че сте конфигурирали тихия режим на инсталатора. Използвайте Universal Silent Switch Finder, който се предлага като пакет Choco:
- Създайте пакета :
- Все още в директорията на пакетите.
choco pack
- „Успешно създадено име на пакета.1.1.0.nupkg“.
- Тествайте пакета :
- Тестването трябва да се извърши на виртуална машина.
- В директорията на пакетите си използвайте:
choco install package-name -s
package-name
е елементът id в nuspec
- Натиснете пакета към хранилището за пакети на общността Chocolatey:
- Вземете акаунт в Chocolatey:
- Регистрирайте се.
- Копирайте ключа за API от вашия акаунт в Chocolatey.
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 файл може да бъде пропуснат, ако е единственият в директорията.
- Вземете акаунт в Chocolatey:
Примери
Ето няколко прости примера.
Забележка :Предоставените примери може да изискват актуализация на контролните суми и по-нови концепции за пакети. Стартирайте choco new
при създаване на пакети, тъй като съдържа най-актуалните бележки.
chocolateyInstall.ps1 за .exe инсталатор
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Забележка :Трябва да настроите превключвателя на командния ред, за да накарате инсталатора да безшумно, напр. ./VERYSILENT
Името на превключвателя варира в зависимост от инсталатора.
chocolateyInstall.ps1 за .msi инсталатор
ЗАБЕЛЕЖКА :Трябва да поддържате съвместимост с Posh v2. Не всяка поддържана ОС е на Posh v2 (нито идва OOB с Posh v3+). Най-добрата практика е да работите с най-широката съвместимост на системите.
$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
Тестване на вашия пакет
Забележка 1 :Силно препоръчвам да извършвате тестване на виртуална машина, а не на вашата работеща машина.
Забележка 2 :Тестването на пакета може да се извърши по същия начин като верификатора. Разгледайте тестването на Chocolatey Verifier.
За да тествате новоизградения пакет, отворете обвивка на командния ред и отидете до директорията, където *.nupkg файл се намира. След това въведете следното:
choco install packageName -dv -s .
Тази команда ще инсталира пакета направо от вашия източник. Ако намерите неща, които трябва да поправите, използвайте --force (-f)
за да премахнете и инсталирате отново пакета от актуализирания *.nupkg . Ако специално тествате chocolateyBeforeModify.ps1 , трябва да тествате сценариите за надграждане и деинсталиране. Първо трябва да инсталирате версия на пакета с този файл, защото подобно t0 деинсталирате, преди да модифицирате работи от инсталирания пакет, а не от пакета, който инсталирате (като chocolateyInstall.ps1 прави).
Забележка 1 :Force --force (-f)
трябва да се използва само по време на последващото тестване, когато преинсталирате същия пакет, който сте променили и не трябва да се използва в сценарии за редовна употреба. Определено не трябва да е в скриптове.
Забележка 2 :Ако използвате Semver dash във версията на пакета си (като 1.0.0-beta ), трябва да използвате -pre
превключвател. В противен случай ще получите „Не може да се намери пакет „ грешки от инсталацията на choco. Можете също да посочите -version 1.0.0-beta
за да инсталирате точната версия.
Знакът точка сочи към текущата директория. Можете да посочите няколко директории, разделени с точка и запетая.
Изпратете вашия пакет
За да натиснете пакета си, след като сте го изградили и тествали, въведете следното:
choco push packageName.nupkg -s sourceLocation
Къде:
packageName.nupkg
е името на nupkg, който е създаден с номер на версия като част от името на пакета;sourceLocation
е местоположението на източника, към който искате да прехвърлите (напр.-s https://chocolatey.org/
за канала на общността Chocolatey).
Трябва да имате API ключ за комплекта https://chocolatey.org/. Разгледайте choco push.
Можете също да влезете в chocolatey.org и да качите своя пакет от там (не се препоръчва за пакети над 2MB).
Препратки
Можете да използвате следните ресурси, за да научите повече за създаването и разпространението на пакет Chocolatey:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm Шоколад вход