web-dev-qa-db-ja.com

Chocolateyパッケージをオフラインでインストールするにはどうすればよいですか?

開発者マシンのソフトウェアインストールをセットアップするために自動化しようとしています。 Chocolateyは、インターネットに接続しているときにパッケージをインストールするのに適しています。パッケージをオフラインでインストールする方法はありますか?

すべてのパッケージを共有ネットワークフォルダーに入れ、そのパッケージを使用してインストールしたいだけです。内部アプリケーションがある場合、どのようにそれらをChocolateyパッケージに変換しますか?

21
suresh2

ダウンロードのキャッシュ-決定論的ではない

元のnupkgを設定する方法はいくつかありますが(packagesディレクトリにあるものではなくバージョンが含まれています Chocolateyコミュニティパッケージリポジトリ のパッケージページの左側からダウンロードを使用してください)、ダウンロードしたものをプリセットしますバイナリをキャッシュフォルダに入れると、それが機能するかどうかが常に決定論的であるとは限りません。キャッシュの場所を上書きして、フォルダーがTEMP内にないようにすることもできます。見る choco configchoco config -hおよびchoco config set cacheLocation c:\some\location これをする。

独自のパッケージを作成する-より良い

オフラインで必要なパッケージの場合、独自のパッケージを管理する機能があり、ソフトウェアをパッケージに直接埋め込むことができます。これは、ソフトウェアをオフラインで管理する場合に必要です。コミュニティリポジトリのほとんどのものは、著作権法と配布権の対象となるためです(単に、それらが表すソフトウェアが埋め込まれていないのはなぜですか)。

独自のパッケージの作成と操作は非常に安全ですが、時間がかかる傾向があります。これを自分で行っている場合は、Chocolateyとコミュニティリポジトリを使用して消費者として得られる時間の節約を無効にすることができます。

組織向けに、5〜10秒で完全なソフトウェア展開(パッケージ)を作成するPackageBuilderを開発しました。また、既存のインストール済みソフトウェア(プログラムと機能)から60秒以内にパッケージを作成することもできます。 パッケージビルダー についてもっと読む。

内部化されたパッケージ-最高

ここでできる最善のことは、内部化と呼ばれるプロセスです。このプロセスでは、パッケージをダウンロードして抽出し、すべてのリソースをダウンロードしてパッケージに埋め込み(またはローカルのどこかに配置)、スクリプトを編集してそれらの埋め込み/ローカルリソースを使用します。パッケージを再コンパイルします。

これにより、インターネットの問題なしに既存のパッケージロジックを利用できます。

詳細については、 パッケージを手動で内部化する および パッケージの内部化-パッケージを自動的に内部化する を参照してください。

Chocolateyの組織での使用

Chocolateyを使用しているほとんどの組織は、パッケージの作成とパッケージの内部化を組み合わせて行っています。これは、本番シナリオで使用する場合、信頼性と絶対的な信頼とそれらのパッケージの制御が必要だからです。

9
ferventcoder

Chocolateyパッケージをオンラインソースからコピーし、そのパッケージをオフラインで使用できるようにするプロセスを自動化するChocolateStoreという名前のプロジェクトを作成しました。

ここでソースを表示できます: https://github.com/BahKoo/ChocolateStore

4
BahKoo

Chocolateyのドキュメントは、質問の最初の部分に次のように答える場合があります。 " 独自の[プライベート/内部/パブリック]パッケージリポジトリサーバー(別名パッケージフィード)をホストする方法 "

LAN /イントラネットまたは共有ボリュームを介してパッケージを提供できるようにする3種類のパッケージリポジトリについて説明します。

  1. フォルダ/ UNC共有
  2. シンプルサーバー
  3. パッケージギャラリー

質問の2番目の部分は、 パッケージの再コンパイルに関するChocolateyのドキュメント で答えることができます。タイトルは実際よりも複雑に聞こえ、「既存のパッケージをローカルにする方法」であった可能性があります。そこで説明されていることは、質問の作成者が「内部アプリケーション」と呼ぶものにも適用できると思います(彼はプログラムを意味すると思います別名.exeファイルで、公開フィードでは利用できません)。

1
Wlad

Chocolateyは$env:TEMPをキャッシュディレクトリとして使用し、ダウンロードファイルは

$env:Temp\chocolatey\Firefox\60.0.2\FirefoxInstall.exe

60.0.2がパッケージバージョンで、Firefoxがパッケージ名です。

0
standin000

インストーラーをキャッシュディレクトリに置きます。

%TEMP%\chocolatey\<pkg>\<version>

そして、強制インストールを実行します。

choco install -f <package_name>

私のバージョン(v0.9.10.3)では問題なく動作しました。

0
ivarec

気の利いた。それはまさに私が現在していることです!

ネットワーク共有フォルダからインストールする価値があるので、私は以下を使用しています:

choco upgrade Eclipse -y -s \\network\users\KyleStoflet\Eclipse

たとえば、ここではEclipseをアップグレードしていますが、この行についてもう少し説明します。

-y確認をスキップします

-sソースパスを提供します

networkusersは、ネットワークとユーザーディレクトリのプレースホルダーです。

...そしてテスト目的のために、私は自分のディレクトリにバージョンを持っています。そのディレクトリ内には、Eclipse、Visual Studio、および開発に使用するその他のさまざまなソフトウェア用の複数のディレクトリがあります。

重要な注意:これは チョコレートパッケージページ から直接取得された.nupkgファイルに対してのみ機能します。 。実行可能ファイルの修正を見つけることはできませんでした。

0
Kyle Stoflet

そこで、オフラインコンピューターからChocolateyパッケージをインストールする必要がある Nullsoft インストーラーを作成しました。全体的な手順は次のとおりです。

  1. Chocolateyパッケージを次の一時ディレクトリにダウンロードします。

    NuGet.exe Install some_package_name -OutputDirectory C:\Temp\ChocoPackages -ExcludeVersion
    
  2. Nullsoftスクリプトで、次の行を追加してダウンロードパッケージを取得します。

    nsExec::Exec 'choco feature disable -n=allowGlobalConfirmation'
    

    SetOutPath "$ {TmpPath} ChocoPackages"ファイル/ r "C:\ Temp\ChocoPackages *。*"

  3. まだNullsoftスクリプトを使用しているときに、次のコマンドを使用して、インストールプロセス中にファイルが配置された一時ディレクトリからChocolateyパッケージをインストールします。

    choco install --Source "${TmpPath}ChocoPackages" ${Name_Of_ChocoPackage} --acceptlicense --yes
    
0
Antebios