クロム之のmini_installer

 

ます。http://www.xue163.com/182/6/1822338.html#pinglunからの振替

 

この記事では、プログラムmini_installerクロムの簡単なインストールを説明します

mini_installerをコンパイルするときは、コンポーネントをコンパイルするためのパラメータを変更したいそうでなければ、コンパイルがmini_stallerの外に報告されます、static_libraryに設定されているエラー「mini_installer.exeは、コンポーネントのビルドと互換性がありません」

 

Pythonのビルド\ gyp_chromiumの-D "コンポーネント= static_library"

 

コンパイルする前に、コンパイラの完了後に空の実行、再コンパイルの結果の前に空にする必要があるかもしれません。

 

忍者-Cアウト\リリース-tクリーン
忍者-Cアウト\リリースmini_installer

このステップでは、クロムを保存する必要がある前にコンパイルSHARED_LIBRARYを使用するかどうかを検討する必要性を空にする前に、再コンパイルので、クロムしまう前に。

 

区別のstatic_libraryとSHARED_LIBRARYでは、と私の個人的な理解は次のとおりです。

静的ライブラリ:ランタイムライブラリ関数は、コンパイルされたオブジェクトコードにコンパイル時に含まれている依存している、プログラムはこれらのライブラリなしでマシン上で実行することができます。
共有ライブラリ:コンパイル時に依存するランタイムライブラリ関数は、コンパイルされたオブジェクトコードに含まれていないが、これらの機能が属するライブラリーレコードとダウン図書館で自分のアドレス情報。
これらの関数を使用する場合は、記録された負荷の下に来る情報に基づいてライブラリ関数に属します。

SRC \クローム\インストーラ下mini_installerプロジェクトは、入り口がmini_installer.ccです

Mini_installer.exe作業は主に以下の作業を行って、比較的簡単です。

 

  1. 作業ディレクトリを決定し、作業ディレクトリを決定するGetTempPath機能により、このディレクトリ、パッケージを抽出したディレクトリで、win7の下にはC:\ Users \ユーザー%USERNAME%\のAppData \ローカル\ Tempには、%USERNAME%は、現在のユーザーの名前です。フォーマット同様のCR_B4D84.tmpフォルダが作成されますTempディレクトリでは、このパッケージはインストールファイルを抽出するために使用されます。
  2. CR_B4D84.tmp 2つのファイルのsetup.exeをCHROME.PACKED.7Zを取得するフォルダにインストールファイルを解凍
  3. setup.exeを実行するプロセスを作成し、インストールプロセスを完了するために、インストーラを待ちます。
  4. 一時フォルダを削除CR_B4D84.tmp。関数ShouldDeleteExtractedFilesによって決まる、一時フォルダを削除するかどうかをCR_B4D84.tmp。一時フォルダCR_B4D84.tmpを削除しないプログラムを作るためには、\クロムの下の\ HKEY_CURRENT_USER \ソフトウェアのレジストリにエントリを追加する必要があります。名前はChromeInstallerCleanup、文字列値の種類、値が「0」です。

 

 

これらはmini_installer.exeの仕事です、その過程で、setup.exeを実行するためのプロセスを作成します。

 

SETUP.EXEコードは、それがコードに実装され、より複雑に見えますが、setup_main.ccは、主に次のとおりです。

インストールディレクトリを決定し、クロムのインストールは、一方が他方のインストールパスがPathProviderWin機能、特定のコードbase_paths_win.ccによって取得され、ユーザがインストールされ、システムがインストールされ、2つに分割されています。

システムをインストールする場合、インストールディレクトリのCSIDL_PROGRAM_FILES、Cに対応:\プログラムファイル

ユーザーは、インストールディレクトリCSIDL_LOCAL_APPDATAをインストールした場合、私のwin7のシステムは、Cに対応:\ Users \ユーザー%USERNAME%\のAppData \ローカル\

ベースパスの上に、:: InstallerStateに、クロム\アプリケーション\は、ターゲットパスを求めるパス生成を追加する機能を初期化し、そして中target_path_に保存されます。

 

インストール機能のInstallProducts、InstallProductsHelperで行われた作業の主な機能を呼び出します。

1、CreateTemporaryAndUnpackDirectories函数

生成TEMP_PATH:C:\ Users \ユーザー%USERNAME%\のAppData \ローカル\クロム\アプリケーション\ Tempに

C:\ Users \ユーザー%USERNAME%\のAppData \ローカル\クロム\アプリケーション\ Tempに\ソース解凍パスunpack_pathの生成

図2に示すように、インスタンスの初期化rchivePatchHelper archive_helper

UncompressAndPatchChromeArchive機能

初めての解凍のために、unpack_pathディレクトリに解凍CHROME.PACKED.7Z、chrome.7Zを取得

UnPackArchive機能

第二解凍、解凍chrome.7Zはクロームのbinディレクトリを取得します

現在、クロムbinディレクトリからインストールのバージョン番号を取得Installer_version

3、セットアップ関数呼び出しInstallOrUpdateProduct

その上で、ディレクトリの作成、ファイルをコピーし、レジストリを変更を含むインストールプログラムinstall_listの一連の作業を、含まれている関数呼び出しInstallNewVersion機能、。

また、操作は操作を実行するためにinstall_list->ド()を呼び出し、その後、AddInstallWorkItems install_list機能に装着されています。

インストール中にエラーが発生した場合は、コールinstall_list->ロールバック()ロールバック。

ます。http://www.xue163.com/182/6/1822338.html#pinglunからの振替

 

この記事では、プログラムmini_installerクロムの簡単なインストールを説明します

mini_installerをコンパイルするときは、コンポーネントをコンパイルするためのパラメータを変更したいそうでなければ、コンパイルがmini_stallerの外に報告されます、static_libraryに設定されているエラー「mini_installer.exeは、コンポーネントのビルドと互換性がありません」

 

Pythonのビルド\ gyp_chromiumの-D "コンポーネント= static_library"

 

コンパイルする前に、コンパイラの完了後に空の実行、再コンパイルの結果の前に空にする必要があるかもしれません。

 

忍者-Cアウト\リリース-tクリーン
忍者-Cアウト\リリースmini_installer

このステップでは、クロムを保存する必要がある前にコンパイルSHARED_LIBRARYを使用するかどうかを検討する必要性を空にする前に、再コンパイルので、クロムしまう前に。

 

区別のstatic_libraryとSHARED_LIBRARYでは、と私の個人的な理解は次のとおりです。

静的ライブラリ:ランタイムライブラリ関数は、コンパイルされたオブジェクトコードにコンパイル時に含まれている依存している、プログラムはこれらのライブラリなしでマシン上で実行することができます。
共有ライブラリ:コンパイル時に依存するランタイムライブラリ関数は、コンパイルされたオブジェクトコードに含まれていないが、これらの機能が属するライブラリーレコードとダウン図書館で自分のアドレス情報。
これらの関数を使用する場合は、記録された負荷の下に来る情報に基づいてライブラリ関数に属します。

SRC \クローム\インストーラ下mini_installerプロジェクトは、入り口がmini_installer.ccです

Mini_installer.exe作業は主に以下の作業を行って、比較的簡単です。

 

  1. 作業ディレクトリを決定し、作業ディレクトリを決定するGetTempPath機能により、このディレクトリ、パッケージを抽出したディレクトリで、win7の下にはC:\ Users \ユーザー%USERNAME%\のAppData \ローカル\ Tempには、%USERNAME%は、現在のユーザーの名前です。フォーマット同様のCR_B4D84.tmpフォルダが作成されますTempディレクトリでは、このパッケージはインストールファイルを抽出するために使用されます。
  2. CR_B4D84.tmp 2つのファイルのsetup.exeをCHROME.PACKED.7Zを取得するフォルダにインストールファイルを解凍
  3. setup.exeを実行するプロセスを作成し、インストールプロセスを完了するために、インストーラを待ちます。
  4. 一時フォルダを削除CR_B4D84.tmp。関数ShouldDeleteExtractedFilesによって決まる、一時フォルダを削除するかどうかをCR_B4D84.tmp。一時フォルダCR_B4D84.tmpを削除しないプログラムを作るためには、\クロムの下の\ HKEY_CURRENT_USER \ソフトウェアのレジストリにエントリを追加する必要があります。名前はChromeInstallerCleanup、文字列値の種類、値が「0」です。

 

 

これらはmini_installer.exeの仕事です、その過程で、setup.exeを実行するためのプロセスを作成します。

 

SETUP.EXEコードは、それがコードに実装され、より複雑に見えますが、setup_main.ccは、主に次のとおりです。

インストールディレクトリを決定し、クロムのインストールは、一方が他方のインストールパスがPathProviderWin機能、特定のコードbase_paths_win.ccによって取得され、ユーザがインストールされ、システムがインストールされ、2つに分割されています。

システムをインストールする場合、インストールディレクトリのCSIDL_PROGRAM_FILES、Cに対応:\プログラムファイル

ユーザーは、インストールディレクトリCSIDL_LOCAL_APPDATAをインストールした場合、私のwin7のシステムは、Cに対応:\ Users \ユーザー%USERNAME%\のAppData \ローカル\

ベースパスの上に、:: InstallerStateに、クロム\アプリケーション\は、ターゲットパスを求めるパス生成を追加する機能を初期化し、そして中target_path_に保存されます。

 

インストール機能のInstallProducts、InstallProductsHelperで行われた作業の主な機能を呼び出します。

1、CreateTemporaryAndUnpackDirectories函数

生成TEMP_PATH:C:\ Users \ユーザー%USERNAME%\のAppData \ローカル\クロム\アプリケーション\ Tempに

C:\ Users \ユーザー%USERNAME%\のAppData \ローカル\クロム\アプリケーション\ Tempに\ソース解凍パスunpack_pathの生成

図2に示すように、インスタンスの初期化rchivePatchHelper archive_helper

UncompressAndPatchChromeArchive機能

初めての解凍のために、unpack_pathディレクトリに解凍CHROME.PACKED.7Z、chrome.7Zを取得

UnPackArchive機能

第二解凍、解凍chrome.7Zはクロームのbinディレクトリを取得します

現在、クロムbinディレクトリからインストールのバージョン番号を取得Installer_version

3、セットアップ関数呼び出しInstallOrUpdateProduct

その上で、ディレクトリの作成、ファイルをコピーし、レジストリを変更を含むインストールプログラムinstall_listの一連の作業を、含まれている関数呼び出しInstallNewVersion機能、。

また、操作は操作を実行するためにinstall_list->ド()を呼び出し、その後、AddInstallWorkItems install_list機能に装着されています。

インストール中にエラーが発生した場合は、コールinstall_list->ロールバック()ロールバック。

おすすめ

転載: www.cnblogs.com/loveyj/p/11239331.html