Ring パッケージ管理プログラム (RingPM)¶
Ring パッケージ管理プログラム (RingPM) の用法です。
このツールは Ring パッケージの検索、インストール、および更新をします。
また、パッケージの互換性の確認で意味つきバージョン管理を使います。
コマンドラインオプション¶
書式:
ringpm [コマンド]
コマンド:
コマンド | 説明 |
---|---|
search [キーワード...] | 新しいパッケージを検索 |
refresh | レジストリを更新 (パッケージリスト) |
install [ <パッケージ名> [from <ユーザ名>] [branch <ブランチ名>] ] | パッケージをインストール |
list [-u : 更新の確認] | インストール済みパッケージのリストを表示 |
run [パッケージ名] | パッケージスクリプトを実行 |
update <パッケージ名> | パッケージを更新 |
remove <パッケージ名> | パッケージを削除 |
format | すべてのパッケージを一括削除 |
new | パッケージテンプレートを新規作成 |
package | 現在のフォルダにパッケージを作成 |
注釈
パッケージの開発検証作業には GitHub アカウント、またはローカル Git サーバが必要です。 package.ring による ringpm install でのローカルインストールはできません。
パッケージの検索¶
search コマンドは新しいパッケージを検索します。
このコマンドは RingPM レジストリ (パッケージのインデックス) を検索します。
RingPM レジストリは登録済み全パッケージのローカルコピーです。
ringpm search [キーワード...]
用例:
ringpm search notepad
実行結果:
Package : ringnotepad (Ring Notepad)
Package : notepadppeditorextension (Notepad++ Editor Extension package)
RingPM レジストリにあるパッケージをすべて表示するには、キーワード無指定で Search コマンドを使用してください。
用例:
ringpm search
RingPM レジストリの更新¶
refresh コマンドはローカルコピーを更新します。
RingPM レジストリは登録済み全パッケージのローカルコピーです。
用例:
ringpm refresh
実行結果:
No updates to the Registry, Nothing to do!
または
The Registry is updated from revision 110 (2019/01/13) to revision 112 (2019/01/15)
パッケージのインストール¶
Install コマンドは新しいパッケージをインストールします。
ringpm install [ <パッケージ名> [from <ユーザ名>] [branch <ブランチ名>] ]
RingPM レジストリからパッケージ情報を取得するには、パッケージ名のみ打鍵します。 または、ユーザ名 (GitHub) と GitHub プロジェクトのブランチ名を決定します。
カレントフォルダがパッケージフォルダならば、パッケージ名の記述は不要です。
用例 (1) :
ringpm install ringnotepad
用例 (2) :
ringpm install goldmagic800
用例 (3) :
ringpm install gameoflife
RingPM レジストリにパッケージが追加されていない場合は、 GitHub ユーザからインストールできます
用例 (4) :
ringpm install firstpackage from mahmoudfayed
インストール後にパッケージスクリプト (main.ring) を実行するには
ringpm run firstpackage
カレントフォルダのパッケージをインストールするには
用例 (5) :
ringpm install
インストール済みパッケージのリスト表示¶
list コマンドはインストール済みパッケージを表示・確認します。
ringpm list [-u : 更新の確認]
用例:
ringpm list
実行結果:
(analogclock) : The AnalogClock Package [master] -- (1.0.0)
(androidringlibsdl) : The AndroidRingLibSDL Package [master] -- (1.0.0)
(androidringqt) : The AndroidRingQt Package [master] -- (1.0.0)
(atomeditorextension) : The AtomEditorExtension Package [master] -- (1.0.0)
(bignumber) : The BigNumber Package [master] -- (1.0.0)
(calculator) : The Calculator Package [master] -- (1.0.0)
(cards) : The Cards Package [master] -- (1.0.0)
(checkers) : The Checkers Package [master] -- (1.0.0)
(chess) : The Chess Package [master] -- (1.0.0)
....
新しい更新を確認するには
ringpm list -u
パッケージスクリプトの実行¶
run コマンドはインストール後にパッケージスクリプト (main.ring) を実行します。これはインストール後の後処理などで使います。
ringpm run [パッケージ名]
用例(1):
ringpm run ringnotepad
用例(2):
ringpm run goldmagic800
用例(3):
ringpm run gameoflife
カレントフォルダでパッケージスクリプトを実行するには
用例(4):
ringpm run
注釈
ローカルインストールに対応したいときは run.ring と zip ファイルを使います。 詳しくは /tools/ringpm/webassemblyringqt を参照してください。
パッケージの更新¶
update コマンドはパッケージを更新します。
ringpm update <パッケージ名>
用例:
ringpm update ringnotepad
パッケージの削除¶
remove コマンドはパッケージを削除します。
ringpm remove <パッケージ名>
用例:
ringpm remove ringnotepad
パッケージの全削除¶
format コマンドはパッケージをすべて削除します。
用例:
ringpm format
パッケージテンプレートの新規作成¶
new コマンドはパッケージテンプレートを新規作成します。
ringpm new <パッケージ名>
用例:
ringpm new myapp
これは新しいフォルダ myapp を作成します。
このようなファイルが新しいフォルダにあります。
package.ring : パッケージの概要とファイル
main.ring : メインプログラム (Run コマンドで使用)
lib.ring : パッケージと関連するライブラリファイル
ファイル : main.ring
# メインファイル
load "lib.ring"
func main
? "Hello, World!"
ファイル : lib.ring
# ライブラリファイル
ファイル : package.ring
aPackageInfo = [
:name = "The myapp Package",
:description = "Our myapp package using the Ring programming language",
:folder = "myapp",
:developer = "",
:email = "",
:license = "MIT License",
:version = "1.0.0",
:ringversion = "1.10",
:versions = [
[
:version = "1.0.0",
:branch = "master"
]
],
:libs = [
[
:name = "",
:version = "",
:providerusername = ""
]
],
:files = [
"lib.ring",
"main.ring"
],
:ringfolderfiles = [
],
:windowsfiles = [
],
:linuxfiles = [
],
:ubuntufiles = [
],
:fedorafiles = [
],
:macosfiles = [
],
:windowsringfolderfiles = [
],
:linuxringfolderfiles = [
],
:ubunturingfolderfiles = [
],
:fedoraringfolderfiles = [
],
:macosringfolderfiles = [
],
:run = "ring main.ring",
:windowsrun = "",
:linuxrun = "",
:macosrun = "",
:ubunturun = "",
:fedorarun = "",
:setup = "",
:windowssetup = "",
:linuxsetup = "",
:macossetup = "",
:ubuntusetup = "",
:fedorasetup = "",
:remove = "",
:windowsremove = "",
:linuxremove = "",
:macosremove = "",
:ubunturemove = "",
:fedoraremove = ""
]
ちなみに
リモートのファイル構成については https://github.com/ringpackages/ を参照してください。
パッケージ概要ファイル¶
パッケージ概要ファイル (package.ring) には、 aPackageInfo のリストで定義されたパッケージ情報があります。
属性 | 説明 |
---|---|
Name | パッケージ名 |
Description | パッケージの概要 |
Folder | フォルダ名 (ring/ringpm/packages へ作成) |
Developer | パッケージ開発者名 |
パッケージ開発者の電子メールアドレス | |
License | パッケージの使用許諾条件 |
Version | パッケージの現行バージョン (最新版数) |
RingVersion | 必要とされる Ring 言語のバージョン (最小版数) |
Versions | GitHub プロジェクトの別ブランチにより提示されるバージョンのリスト |
Libs | 依存性リスト (名前、バージョンと GitHub のユーザ名) |
Files | ファイルリスト (ring/ringpm/packages/[フォルダ] へインストール) |
RingFolderFiles | ファイルリスト (Ring のフォルダへインストール) |
WindowsFiles | Files と同じですが Microsoft Windows のみで行う処理を指定 |
LinuxFiles | Files と同じですが Linux のみで行う処理を指定 |
MacOSFiles | Files と同じですが macOS のみで行う処理を指定 |
UbuntuFiles | Files と同じですが Ubuntu のみで行う処理を指定 |
FedoraFiles | Files と同じですが Fedora のみで行う処理を指定 |
WindowsRingFolderFiles | RingFolderFiles と同じですが Microsoft Windows のみで行う処理を指定 |
LinuxRingFolderFiles | RingFolderFiles と同じですが Linux のみで行う処理を指定 |
MacOSRingFolderFiles | RingFolderFiles と同じですが macOS のみで行う処理を指定 |
UbuntuRingFolderFiles | RingFolderFiles と同じですが Ubuntu のみで行う処理を指定 |
FedoraRingFolderFiles | RingFolderFiles と同じですが Fedora のみで行う処理を指定 |
Run | パッケージで実行するシステムコマンド (コマンドプロンプトまたは端末) |
WindowsRun | Run と同じですが Microsoft Windows のみで行う処理を指定 |
LinuxRun | Run と同じですが Linux のみで行う処理を指定 |
MacOSRun | Run と同じですが macOS のみで行う処理を指定 |
UbuntuRun | Run と同じですが Ubuntu のみで行う処理を指定 |
FedoraRun | Run と同じですが Fedora のみで行う処理を指定 |
Setup | パッケージファイルのダウンロード後に実行するシステムコマンド (コマンドプロンプトまたは端末) |
WindowsSetup | Setup と同じですが Microsoft Windows のみで行う処理を指定 |
LinuxSetup | Setup と同じですが Linux のみで行う処理を指定 |
MacOSSetup | Setup と同じですが macOS のみで行う処理を指定 |
UbuntuSetup | Setup と同じですが Ubuntu のみで行う処理を指定 |
FedoraSetup | Setup と同じですが Fedora のみで行う処理を指定 |
Remove | パッケージファイルの削除前に実行するシステムコマンド (コマンドプロンプトまたは端末) |
WindowsRemove | Remove と同じですが Microsoft Windows のみで行う処理を指定 |
LinuxRemove | Remove と同じですが Linux のみで行う処理を指定 |
MacOSRemove | Remove と同じですが macOS のみで行う処理を指定 |
UbuntuRemove | Remove と同じですが Ubuntu のみで行う処理を指定 |
FedoraRemove | Remove と同じですが Fedora のみで行う処理を指定 |
カレントフォルダでのパッケージ作成¶
package コマンドは既存アプリケーションのパッケージを作成します
アプリケーションのフォルダへ移動後に、
ringpm package
を実行するとパッケージ定義ファイル (package.ring) の作成後、パッケージ定義へアプリケーションのファイルリストをすべて追加します。
RingPM で作成したパッケージには、パッケージ情報とファイルリストを記したパッケージ定義ファイル (package.ring) を生成します。
用例:
Ring ノートパッドのパッケージファイル定義は
aPackageInfo = [
:name = "The RingNotepad Package",
:description = "Our RingNotepad package using the Ring programming language",
:folder = "ringnotepad",
:developer = "Mahmoud Fayed",
:email = "msfclipper@yahoo.com",
:license = "MIT License",
:version = "1.0.0",
:ringversion = "1.10",
:versions = [
[
:version = "1.0.0",
:branch = "master"
]
],
:libs = [
[
:name = "stdlib",
:version = "1.0",
:providerusername = ""
],
[
:name = "ringqt",
:version = "1.0",
:providerusername = ""
],
[
:name = "findinfiles",
:version = "1.0",
:providerusername = ""
],
[
:name = "formdesigner",
:version = "1.0",
:providerusername = ""
],
[
:name = "libdepwin_apache",
:version = "1.0",
:providerusername = ""
]
],
:files = [
"main.ring",
"README.md"
],
:ringfolderfiles = [
"applications/rnote/batch/killwebserver.bat",
"applications/rnote/batch/run.bat",
"applications/rnote/batch/run2.bat",
"applications/rnote/image/back.jpg",
"applications/rnote/image/back2.jpg",
"applications/rnote/image/close.png",
"applications/rnote/image/colors.png",
"applications/rnote/image/copy.png",
"applications/rnote/image/cut.png",
"applications/rnote/image/debug.png",
"applications/rnote/image/font.png",
"applications/rnote/image/formdesigner.png",
"applications/rnote/image/new.png",
"applications/rnote/image/notepad.png",
"applications/rnote/image/open.png",
"applications/rnote/image/paste.png",
"applications/rnote/image/print.png",
"applications/rnote/image/project.png",
"applications/rnote/image/richtext.png",
"applications/rnote/image/run.png",
"applications/rnote/image/rungui.png",
"applications/rnote/image/save.png",
"applications/rnote/image/saveas.png",
"applications/rnote/image/search.png",
"applications/rnote/image/source.png",
"applications/rnote/image/undo.png",
"applications/rnote/image/web.png",
"applications/rnote/README.md",
"applications/rnote/rnote.ring",
"applications/rnote/rnoteactivefile.ring",
"applications/rnote/rnoteactivefolder.ring",
"applications/rnote/rnoteautocomplete.ring",
"applications/rnote/rnotebase.ring",
"applications/rnote/rnotecontroller.ring",
"applications/rnote/rnotedistribute.ring",
"applications/rnote/rnoteeditmenu.ring",
"applications/rnote/rnoteeditorevents.ring",
"applications/rnote/rnotefilemenu.ring",
"applications/rnote/rnotefiles.ring",
"applications/rnote/rnotefilestabs.ring",
"applications/rnote/rnotefind.ring",
"applications/rnote/rnotefindinfiles.ring",
"applications/rnote/rnoteformdesigner.ring",
"applications/rnote/rnotegoto.ring",
"applications/rnote/rnotehelp.ring",
"applications/rnote/rnotelists.ring",
"applications/rnote/rnotemainfiletoolbar.ring",
"applications/rnote/rnotemainwindow.ring",
"applications/rnote/rnotemode.ring",
"applications/rnote/rnoteoutputwindow.ring",
"applications/rnote/rnoteprogrammenu.ring",
"applications/rnote/rnoterun.ring",
"applications/rnote/rnotesettings.ring",
"applications/rnote/rnotestyle.ring",
"applications/rnote/rnotetabwidth.ring",
"applications/rnote/rnotetools.ring",
"applications/rnote/rnotetreeviewevents.ring",
"applications/rnote/rnoteviewmenu.ring",
"applications/rnote/rnotewebbrowser.ring"
],
:run = "ring main.ring"
]
RingPM レジストリファイル¶
RingPM レジストリは、登録済み全パッケージのローカルコピーです。
aPackagesRegistry = [
[ :name = "ringpresentation",
:description = "Powerpoint presentation for the Ring programming language",
:ProviderUserName = "ringpackages"
]
# ...
]
このリストでパッケージを定義しています。
パッケージ名
パッケージの概要
開発者のユーザ名 (GitHub ユーザ名)
新しいパッケージを登録するには、レジストリファイルを更新後に Pull リクエストを送信します。
URL : https://github.com/ring-lang/ring/blob/master/tools/ringpm/registry/registry.ring