この記事では、Chocolateyパッケージ作成の主要な段階について簡単に説明します。
前提条件
Chocolateyパッケージの作成を開始する前に、次のことを確認してください。
- Chocolateyをインストールします;
- Chocolateyパッケージとは何ですか? Chocolateyドキュメントのセクション;
- パッケージがどのように機能するかを知っている。具体的には、次のことに注意してください。
- パッケージには*。nuspeが含まれています cファイル。これはパッケージを定義します。 (ドキュメント);
- パッケージには組み込みソフトウェアが含まれている場合があります;
- パッケージにはインストールスクリプトが含まれている場合があります。
- パッケージには*。nuspeが含まれています cファイル。これはパッケージを定義します。 (ドキュメント);
Chocolateyパッケージは、次の主要な要素で構成されています。
- * .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
Chocolate Windows パッケージマネージャーは、NuGetと同じインフラストラクチャ、つまり Visual Studioを使用します パッケージマネージャー。したがって、パッケージは同じ原則に基づいており、パッケージの説明(仕様)はNuspecと呼ばれるXML形式で保存する必要があるというものも含まれます。
* .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
を編集します スクリプトをインストールします。- インストーラーのサイレントモードが構成されていることを確認してください。 Chocoパッケージとして利用可能なUniversalSilentSwitch Finderを使用します:
choco install ussf.
- BOMなしのUTF-8文字エンコードでファイルを保存する必要があります。
- インストーラーのサイレントモードが構成されていることを確認してください。 Chocoパッケージとして利用可能なUniversalSilentSwitch Finderを使用します:
-
- パッケージを作成する :
- まだパッケージディレクトリにあります。
choco pack
- 「正常に作成されたpackage-name.1.1.0.nupkg」。
- パッケージをテストする :
- テストは仮想マシンで実行する必要があります。
- パッケージディレクトリで、次を使用します:
-
choco install package-name -s
package-name
nuspecのid要素です
-
- パッケージをプッシュ Chocolateyコミュニティパッケージリポジトリへ:
- Chocolateyアカウントを取得する:
- 登録します。
- ChocolateyアカウントからAPIキーをコピーします。
-
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 ディレクトリ内にファイルが1つしかない場合は、ファイルを省略できます。
- Chocolateyアカウントを取得する:
例
ここにいくつかの簡単な例があります。
注 :提供されている例では、チェックサムの更新と新しいパッケージの概念が必要になる場合があります。 choco new
を実行します 最新のメモが含まれているため、パッケージを作成する場合。
.exeインストーラー用のchocolateyInstall.ps1
$name = 'Package Name' $installerType = 'exe' $url = 'http://path/to/download/installer.exe' $silentArgs = '/VERYSILENT' Install-ChocolateyPackage $name $installerType $silentArgs $url
注 :インストーラーをサイレントにするためにコマンドラインスイッチを設定する必要があります。 。/VERYSILENT
スイッチ名はインストーラーによって異なります。
.msiインストーラー用のchocolateyInstall.ps1
注 :Poshv2との互換性を維持する必要があります。サポートされている各OSがPoshv2に搭載されているわけではありません(Posh v3 +にはOOBも搭載されていません)。ベストプラクティスは、そこにあるシステムの最も広い互換性で作業することです。
$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 :パッケージテストは、ベリファイアと同じ方法で実行できます。 ChocolateyVerifierテストをご覧ください。
新しくビルドされたパッケージをテストするには、コマンドラインシェルを開き、*。nupkgがあるディレクトリに移動します。 ファイルがあります。次に、次のように入力します。
choco install packageName -dv -s .
このコマンドは、ソースからパッケージをインストールします。修正が必要なものを見つけた場合は、--force (-f)
を使用してください 更新された*。nupkgからパッケージを削除して再インストールします 。特にchocolateyBeforeModify.ps1をテストしている場合 、アップグレードとアンインストールのシナリオをテストする必要があります。同様のt0がアンインストールされるため、最初にこのファイルを含むバージョンのパッケージをインストールする必要があります。変更する前に インストールしているパッケージではなく、インストールされているパッケージから実行されます(c hocolateyInstall.ps1 など)。
注1 :Force --force (-f)
変更したものと同じパッケージを再インストールする場合の後続のテスト中にのみ使用する必要があり、使用しないでください 通常の使用シナリオで使用されます。間違いなくスクリプトに含めるべきではありません。
注2 :パッケージバージョンでSemverダッシュを使用する場合( 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コミュニティフィード用)。
https://chocolatey.org/セットのAPIキーが必要です。チョコプッシュを見てください。
また、chocolatey.orgにログインして、そこからパッケージをアップロードすることもできます(2MBを超えるパッケージにはお勧めしません)。
次のリソースを使用して、Chocolateyパッケージの作成と配布について詳しく知ることができます。
- https://chocolatey.org/docs/create-packages
- https://github.com/chocolatey-community/chocolatey-test-environm チョコレート ent