r4wpkgコマンドについて
Simple Wiki Based Contents Management System
関心分野 >> Ros4Winのインストール >> 準備とインストール(Ros4Win) >> r4wpkgコマンドについて

r4wpkgコマンドについて

r4wpkgは、Ros4Winのための簡易パッケージマネージャーです。リポジトリサイトと連携してパッケージのダウンロード、インストール、アンインストール、アップデートの確認などを行います。

リポジトリサイトとの連携処理

get_pkg_hash_value
pkg_hash.cgi_name=XXX
get_package
pkg_get.cgi?name=XXX
get_pkg_dep
pkg_dep.cgi?name=XXX&type=json
get_pkg_list
pkg_list.cgi?name=XXX

Sqlite関連処理

create_db_table(name, schema, dbname)
 DBテーブル作成
exec_sql(sql, dbname)
SQLの実行
insert_pkg_data
packagesテーブルにアイテムを追加
get_pkg_dara(name, dbname)
packagesテーブルからnameに適合したアイテムの取得
get_installed_pkgs_list(dbname)
packagesテーブルのアイテムをすべて取得
delete_pkg_data(name, dbname)
packagesテーブルからnameに適合したアイテムを削除
register_info(dbname, pkgname, fname)
install_infoテーブルにアイテムを追加
get_installed_files(name, dbname)
install_infoテーブルからnameに適合したアイテムを取得
delete_installed_file?entries(name, dbname)
install_infoテーブルからnameに適合したアイテムを削除
get_installed_packages(dbname)
install_infoテーブルから重複していないnameのエントリを取得

untar関数について

実装したuntar関数では、tgzファイルの進捗付き解凍を行う。このコマンドは、dbの名前が指定されれば、Sqliteデータベースを作成して、install_pkg_dataでファイル名(パッケージ名に相当)を登録する。また、各ファイルの解凍時に、register_info関数で展開したファイル名を登録していく。この情報は、remove_pkg_file_all関数で使われる

remove_pkg_file_all関数

この関数は、Sqliteデータベースに登録されている情報を使って、パッケージにアンインストールを行う。引数は、パッケージ名とインストールされているドライブレターであることに注意。(本来は、要調整)
get_installed_filesコマンドでファイルリストを取得して、各ファイルと空になったディレクトリを削除する。ファイルの削除後に、delete_install_file_entries関数と、delete_pkg_data関数を呼び出して、データベースを更新する。