🍩Ring 1.12:docs

- News
- Download
- Get Help
- Contribute
- Resources
- Team
- Website
- Index

### ナビゲーション

- 次へ »
- » 前へ |
- プログラミング言語 Ring 1.12 取扱説明書 »
- Ring パッケージ管理プログラム (RingPM)

# Ring パッケージ管理プログラム (RingPM)

Ring パッケージ管理プログラム (RingPM) の用法を学びます。

RingPM ツールは Ring パッケージの検索、インストール、および更新をします。

## 特徴

パッケージ管理プログラムではパッケージ間の互換性確認のために意味つきバージョン管理を使用しています。

このようなオプションがパッケージ管理プログラムにあります。

    用法 : ringpm [コマンド]
    コマンド : search  [キーワード...]
    コマンド : refresh : レジストリの更新 (パッケージリスト)
    コマンド : install [ <パッケージ名> [from <ユーザ名>] [branch <ブランチ名>] ]
    コマンド : list    [-u : 更新の確認]
    コマンド : run     [パッケージ名]
    コマンド : update  <パッケージ名>
    コマンド : remove  <パッケージ名>
    コマンド : format  : すべてのパッケージを削除
    コマンド : new     <パッケージ名>
    コマンド : package : 現在のフォルダにパッケージを作成

## パッケージの検索

新しいパッケージを検索するには Search コマンドを使用します。

このコマンドは RingPM レジストリ (パッケージのインデックス) を検索します。

RingPM レジストリは登録済み全パッケージのローカルコピーです。

    ringpm search [キーワード...]

用例:

    ringpm search notepad

実行結果:

    Package : ringnotepad (Ring Notepad)
    Package : notepadppeditorextension (Notepad++ Editor Extension package)

RingPM レジストリにある全パッケージを表示するには、キーワード無指定で Search コマンドを使用してください。

用例:

    ringpm search

## RingPM レジストリの更新

RingPM レジストリは登録済み全パッケージのローカルコピーです。

ローカルコピーを更新するには Refresh コマンドを使用します。

用例:

    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

インストール後にパッケージを実行するには

    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 コマンドを使用します。

    ringpm run [パッケージ名]

用例(1):

    ringpm run ringnotepad

用例(2):

    ringpm run goldmagic800

用例(3):

    ringpm run gameoflife

カレントフォルダでパッケージを実行するには

用例(4):

    ringpm run

## パッケージの更新

パッケージを更新するには 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 = ""
    ]

## パッケージ概要ファイル

パッケージ概要ファイルには、 aPackageInfo のリストで定義されたパッケージ情報があります。

属性 | 説明
--- | ---
Name | パッケージ名
Description | パッケージの概要
Folder | フォルダ名 (ring/ringpm/packages へ作成されます)
Developer | パッケージ開発者名
Email | パッケージ開発者の電子メールアドレス
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 のみで行う処理を指定

## カレントフォルダでのパッケージ作成

既存アプリケーションでパッケージを作成するには、このコマンドをアプリケーションのフォルダへ移動後に実行します。

    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/ringpm/registry/registry.ring