W tym artykule przyjrzymy się pokrótce kluczowym etapom tworzenia pakietu Chocolatey.
Wymagania wstępne
Zanim zaczniesz tworzyć pakiet czekoladek, upewnij się, że musisz:
- zainstalować Chocolatey;
- przeczytaj Czym są Opakowania Czekoladowe? sekcja dokumentacji Chocolatey;
- wiedzieć, jak działa pakiet. W szczególności zdajesz sobie sprawę, że:
- pakiet zawiera *.nuspe c plik. To definiuje pakiet. (Dokumenty);
- pakiet może zawierać oprogramowanie wbudowane;
- pakiet może zawierać skrypt instalacyjny.
- pakiet zawiera *.nuspe c plik. To definiuje pakiet. (Dokumenty);
Pakiet czekoladek składa się z następujących głównych elementów:
- *.nuspec plik. Ten krok jest obowiązkowy.
- czekoladowyInstall.ps1 plik.
- Wszelkie pliki aplikacji do uwzględnienia (w tym przypadku zdecydowanie zaleca się, abyś był autorem lub masz prawo do dystrybucji plików). *.exe pliki w pakiecie/pobrane do folderu pakietu z chocolateyInstall.ps1 będą miały link do wiersza poleceń.
- chocolateyUninstall.ps1 do odinstalowania twojego pakietu.
Polecam rzucić okiem na film pokazujący tworzenie pakietu. Należy pamiętać, że film zawiera nieco przestarzałą zawartość pliku chocolateyInstall.ps1 . W tej chwili chocolateyInstall.ps1 wygląda następująco:
$packageName = 'windirstat $fileType = 'exe' $url = 'http://prdownloads.sourceforge.net/windirstat/windirstat1_1_2_setup.exe' $silentArgs = '/S' Install-ChocolateyPackage $packageName $fileType $silentArgs $url
Okna czekoladowe Menedżer pakietów korzysta z tej samej infrastruktury co NuGet, czyli Visual Studio menedżer pakietów. Dlatego pakiety opierają się na tych samych zasadach, w tym na tej, która mówi, że opis pakietu (specyfikacja) musi być przechowywany w formacie XML, znanym jako Nuspec.
*.nuspec plik zawiera takie podstawowe informacje, jak wersja, licencja, opiekun i zależności pakietów. Chocolatey zawiera dodatkowe opcjonalne funkcje na samym szczycie NuGet *.nuspec plik. Dlatego najlepszym sposobem określenia aktualnie obsługiwanych funkcji jest utworzenie pakietu testowego i przyjrzenie się wygenerowanemu plikowi *.nuspec:
choco new testpackage
Uwaga: Jeśli twój pakiet używa ostatnio wprowadzonej funkcjonalności, możesz chcieć dołączyć zależność wskazującą najniższą wersję Chocolatey, która obsługuje wymaganą funkcjonalność. W przeciwnym razie instalacja może się nie powieść w przypadku użytkowników, którzy mają zainstalowaną starszą wersję Chocolatey.
Możesz wskazać zależność Chocolatey jak każdą inną zależność, np.:
<dependencies> <dependency id="chocolatey" version="0.9.8.21" /> </dependencies>
Przewodnik szybkiego startu
- Wygeneruj nowy pakiet :
choco new -h
polecenie pomoże Ci ustawić opcje pakietu.- Po ustaleniu wszystkich opcji możesz przystąpić do generowania szablonu.
- Odpowiednio edytuj szablon :
cd package-name
- Edytuj
package-name.
plik konfiguracyjny nuspec. - Edytuj
./tools/chocolateyInstall.ps1
zainstaluj skrypt.- Upewnij się, że skonfigurowałeś tryb cichy instalatora. Użyj Universal Silent Switch Finder, który jest dostępny jako pakiet Choco:
choco install ussf.
- Musisz zapisać swoje pliki z kodowaniem znaków UTF-8 bez BOM.
- Upewnij się, że skonfigurowałeś tryb cichy instalatora. Użyj Universal Silent Switch Finder, który jest dostępny jako pakiet Choco:
- Zbuduj pakiet :
- Nadal w katalogu pakietów.
choco pack
- "Pomyślnie utworzono nazwa-pakietu 1.1.0.nupkg".
- Przetestuj pakiet :
- Testowanie powinno być wykonywane na maszynie wirtualnej.
- W katalogu pakietów użyj:
choco install package-name -s
package-name
jest elementem id w nuspec
- Dociśnij paczkę do repozytorium pakietów społeczności Chocolatey:
- Załóż konto Chocolatey:
- Zarejestruj się.
- Skopiuj klucz API ze swojego konta 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 plik może zostać pominięty, jeśli jest jedynym w katalogu.
- Załóż konto Chocolatey:
Przykłady
Oto kilka prostych przykładów.
Uwaga :Podane przykłady mogą wymagać aktualizacji sum kontrolnych i nowszych koncepcji pakietów. Uruchom choco new
podczas tworzenia pakietów, ponieważ zawiera najbardziej aktualne notatki.
chocolateyInstall.ps1 dla instalatora .exe
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
Uwaga :Musisz ustawić przełącznik wiersza poleceń, aby instalator był cichy, np. ./VERYSILENT
Nazwa przełącznika różni się w zależności od instalatora.
chocolateyInstall.ps1 dla instalatora .msi
UWAGA :Musisz zachować kompatybilność z Posh v2. Nie każdy obsługiwany system operacyjny jest na Posh v2 (ani OOB z Posh v3+). Najlepszą praktyką jest praca z największą kompatybilnością dostępnych systemów.
$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
Testowanie pakietu
Uwaga 1 :Zdecydowanie polecam przeprowadzanie testów na maszynie wirtualnej, a nie na działającej maszynie.
Uwaga 2 :Testowanie pakietu można wykonać w taki sam sposób jak weryfikatora. Spójrz na testowanie weryfikatora czekolady.
Aby przetestować nowo zbudowany pakiet, otwórz powłokę wiersza poleceń i przejdź do katalogu, w którym *.nupkg plik jest zlokalizowany. Następnie wpisz:
choco install packageName -dv -s .
To polecenie zainstaluje pakiet bezpośrednio z twojego źródła. Jeśli znajdziesz rzeczy, które musisz naprawić, użyj --force (-f)
aby usunąć i ponownie zainstalować pakiet ze zaktualizowanego pliku *.nupkg . Jeśli konkretnie testujesz chocolateyBeforeModify.ps1 , musisz przetestować scenariusze uaktualniania i odinstalowywania. Musisz najpierw zainstalować wersję pakietu z tym plikiem, ponieważ podobne t0 odinstalować, przed modyfikacją działa z zainstalowanego pakietu, a nie z pakietu, który instalujesz (np. chocolateyInstall.ps1 tak).
Uwaga 1 :Force --force (-f)
powinien być używany tylko podczas kolejnych testów, gdy ponownie instalujesz ten sam pakiet, który zmieniłeś i nie powinien być używane w normalnych scenariuszach użytkowania. Zdecydowanie nie powinno być w skryptach.
Uwaga 2 :Jeśli używasz myślnika Semver w swojej wersji pakietu (np. 1.0.0-beta ), musisz użyć -pre
przełącznik. W przeciwnym razie otrzymasz komunikat „Nie można znaleźć pakietu Błędy z instalacji choco. Możesz także określić -version 1.0.0-beta
aby zainstalować dokładną wersję.
Znak kropki wskazuje na bieżący katalog. Możesz określić wiele katalogów oddzielonych średnikiem.
Wypchnij swój pakiet
Aby wypchnąć pakiet po jego zbudowaniu i przetestowaniu, wpisz następujące polecenie:
choco push packageName.nupkg -s sourceLocation
Gdzie:
packageName.nupkg
to nazwa nupkg, który został zbudowany z numerem wersji jako częścią nazwy pakietu;sourceLocation
to lokalizacja źródła, do którego chcesz wysłać plik (np.-s https://chocolatey.org/
dla kanału społeczności Chocolatey).
Musisz mieć klucz API dla zestawu https://chocolatey.org/. Spójrz na choco push.
Możesz także zalogować się na chocolatey.org i przesłać stamtąd swój pakiet (niezalecane w przypadku pakietów powyżej 2 MB).
Referencje
Możesz skorzystać z następujących zasobów, aby dowiedzieć się więcej o tworzeniu i dystrybucji pakietu Chocolatey:
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm Czekolada ent