4.1 Condaコマンド

このトピックでは、conda環境の作成およびテスト中にADMINが使用する一般的なコマンドについて説明します。Condaは、サード・パーティRライブラリが含まれる環境の使用を可能にするオープンソースのパッケージおよび環境管理システムです。

サポートされているcondaコマンドの表は、Condaインタプリタ・コマンドを参照してください。

Condaヘルプ

condaコマンドのヘルプを表示するには、コマンド名の後に--helpフラグを付けて実行します。

ノート:

%condaインタプリタによってcondaコンテキストが提供されるため、condaコマンドは明示的に実行されません。
  • すべてのcondaコマンドのヘルプを表示する

    %conda
    
    --help
    
  • 特定のcondaコマンドのヘルプを表示する。次のコマンドを実行して、installコマンドのヘルプを表示します。

    %conda
    
    install --help

Conda情報

infoコマンドは、condaバージョンや使用可能なチャネルなど、condaインストールに関する情報を表示します。

%conda

info

Conda検索

searchコマンドを使用すると、パッケージを検索したり、関連する情報(パッケージのバージョンやパッケージが存在するチャネルなど)を表示できます。

  • 特定のパッケージを検索する。次のコマンドを実行して、パッケージggplot2を検索します。

    %conda
    
    search ggplot2
  • パッケージ名に'scikit'が含まれるパッケージを検索する。

    %conda
    
    search '*ggplot2*'
  • 特定のバージョンのパッケージを検索する。

    %conda
    
    search 'ggplot2==3.1.1'
    %conda
    
    search 'ggplot2>=3.1.1'

拡張Condaコマンド

conda環境のライフサイクル管理パッケージenv-lcmに含まれる一連の拡張condaコマンドにより、使用可能な環境のアップロード、ダウンロード、リスト、削除など、オブジェクト・ストレージに保存された環境の管理がサポートされます。

condaライフサイクル環境コマンドのヘルプ。

%conda

env-lcm --help
Usage: conda-env-lcm [OPTIONS] COMMAND [ARGS]...

  ADB-S Command Line Interface (CLI) to manage persistence of conda
  environments

Options:
  -v, --version  Show the version and exit.
  --help         Show this message and exit.

Commands:
  delete           Delete a saved conda environment
  download         Download a saved conda environment
  import           Create or update a conda environment from saved metadata
  list-local-envs  List locally available environments for use
  list-saved-envs  List saved conda environments
  upload           Save conda environment for later use

Conda環境の作成

この項では、パッケージの作成とconda環境へのインストール、さらに環境の削除について説明します。ここでは、環境の作成およびテストに使用できる一般的に使用されるオプションを示します。環境はノートブック・セッションの間存在し、オブジェクト・ストレージに保存しないかぎりセッション間で保持されません。OMLユーザー用の環境の作成と保存の両方が含まれる手順は、「Conda環境を作成および保存するための管理タスク」に記載されているconda環境を作成および保存するための管理タスクを参照してください。ADMINユーザーとして、次のようにします。
  1. createコマンドを使用して環境myenvを作成し、conda-forgeチャネルから予測パッケージをインストールします。
  2. 新しい環境が作成されていることを確認し、環境をアクティブ化します。
  3. R環境にe1071パッケージをインストールします。
  4. R環境からforecastパッケージをアンインストールします。
  5. 環境を非アクティブ化して削除します。

ノート:

  • ADMINユーザーはPythonおよびRからconda環境にアクセスできますが、埋込みのPythonおよびR実行コマンドは実行できません。
conda createコマンドのヘルプを表示するには、%conda段落にcreate --helpと入力します。

環境のリスト

デフォルトで使用可能な環境をリストするところから始めます。Condaには、いくつかのコア・システム・ライブラリおよびconda依存関係が含まれるデフォルト環境があります。アクティブな環境にはアスタリスク(*)が付いています。

%conda

env list
# conda environments:
#
base                   * /usr
conda-pack-env           /usr/envs/conda-pack-env

Conda環境の作成

OML4Rの互換性のためにR=4を指定してmyenvというconda環境を作成し、conda-forgeチャネルからforecastパッケージをインストールします。override-channelsオプションを使用してconda-forgeのみが検索されるようにし、strict-channel-priorityを使用してconda操作を高速化します。conda-forgeチャネルからのパッケージのインストールの詳細は、「conda-forgeチャネルからのパッケージのインストール」を参照してください。

%conda 

create -n myenv -c conda-forge --override-channels --strict-channel-priority r-forecast 

環境の作成の確認

myenv環境が環境のリストに含まれていることを確認します。アスタリスク(*)は、アクティブな環境を示します。新しい環境が作成されていますが、アクティブ化されません。

%conda

env list
# conda environments:
#
myenv                   /u01/.conda/envs/myenv
base                  * /usr
conda-pack-env          /usr/envs/conda-pack-env

環境のアクティブ化

myenv環境をアクティブ化し、環境をリストしてアクティブ化を確認します。環境名の横にあるアスタリスク(*)により、アクティブ化が確認されます。

%conda

activate myenv
Conda environment 'myenv' activated

デフォルトで使用可能な環境をリストします。

%conda

env list
# conda environments:
#
myenv                 * /u01/.conda/envs/myenv
base                    /usr
conda-pack-env          /usr/envs/conda-pack-env

ライブラリのインストールとアンインストール

ADMINユーザーは、installおよびuninstallコマンドを使用して、環境に対してライブラリをインストールおよびアンインストールできます。conda installおよびuninstallコマンドのヘルプを表示するには、%conda段落にinstall --helpおよびuninstall --helpと入力します。

ノート:

condaによってパッケージが環境にインストールされると、必要な依存関係もインストールされます。ここに示すとおり、既存の環境にパッケージをインストールできます。ベスト・プラクティスとして、依存関係の競合を回避するために、特定の環境で必要なパッケージをすべて同時にインストールします。

追加パッケージのインストール

アクティブ化されたmyenv環境にe1071パッケージをインストールします。

%conda

install r-e1071

現在の環境内のパッケージのリスト

現在の環境にインストールされているパッケージをリストし、forecastおよびe1071がインストールされていることを確認します。

%conda

list

出力は、次のようなものです。

# packages in environment at /u01/.conda/envs/myrenv:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
_r-mutex                  1.0.1               anacondar_1    conda-forge
binutils_impl_linux-64    2.33.1               he6710b0_7 
.
.
.
r-digest                  0.6.18            r36h96ca727_0 
r-e1071                   1.7_1             r36h29659fb_0 
r-evaluate                0.13              r36h6115d3f_0 
r-fansi                   0.4.0             r36h96ca727_0 
r-forecast                8.6               r36h29659fb_0 
r-fracdiff                1.4_2             r36h96ca727_4 
r-fs                      1.2.7             r36h29659fb_0 
r-generics                0.0.2             r36h6115d3f_0 
r-ggplot2                 3.1.1             r36h6115d3f_0 
r-glue                    1.3.1             r36h96ca727_0 
.
.
.
zlib                      1.2.13               h166bdaf_4    conda-forge
zstd                      1.5.2                h6239696_4    conda-forge

前述の出力は切り取られているため、パッケージの完全なリストを示していません。

パッケージのアンインストール

uninstallコマンドを使用して、ライブラリを環境からアンインストールできます。現在の環境からforecastパッケージをアンインストールしてみましょう。

%conda

uninstall r-forecast

パッケージがアンインストールされたことの確認

現在の環境内のパッケージをリストし、forecastパッケージがアンインストールされたことを確認します。

%conda

list

次に示す出力には、r-forecastパッケージが含まれていません。

# packages in environment at /u01/.conda/envs/myrenv:
#
# Name                    Version                   Build  Channel
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                       2_gnu    conda-forge
_r-mutex                  1.0.1               anacondar_1    conda-forge
binutils_impl_linux-64    2.39                 h6ceecb4_0    conda-forge
bwidget                   1.9.14               ha770c72_1    conda-forge
bzip2                     1.0.8                h7f98852_4    conda-forge
c-ares                    1.18.1               h7f98852_0    conda-forge
ca-certificates           2022.10.11           h06a4308_0  
cairo                     1.16.0            ha61ee94_1014    conda-forge
curl                      7.86.0               h2283fc2_1    conda-forge
expat                     2.5.0                h27087fc_0    conda-forge
font-ttf-dejavu-sans-mono 2.37                 hab24e00_0    conda-forge
font-ttf-inconsolata      3.000                h77eed37_0    conda-forge
font-ttf-source-code-pro  2.038                h77eed37_0    conda-forge
font-ttf-ubuntu           0.83                 hab24e00_0    conda-forge
fontconfig                2.14.1               hc2a2eb6_0    conda-forge
fonts-conda-ecosystem     1                             0    conda-forge
fonts-conda-forge         1                             0    conda-forge
freetype                  2.12.1               hca18f0e_0    conda-forge
fribidi                   1.0.10               h36c2ea0_0    conda-forge
gcc_impl_linux-64         12.2.0              hcc96c02_19    conda-forge
gettext                   0.21.1               h27087fc_0    conda-forge
gfortran_impl_linux-64    12.2.0              h55be85b_19    conda-forge
graphite2                 1.3.13            h58526e2_1001    conda-forge
gsl                       2.7                  he838d99_0    conda-forge
gxx_impl_linux-64         12.2.0              hcc96c02_19    conda-forge
harfbuzz                  5.3.0                h418a68e_0    conda-forge
icu                       70.1                 h27087fc_0    conda-forge
jpeg                      9e                   h166bdaf_2    conda-forge
kernel-headers_linux-64   2.6.32              he073ed8_15    conda-forge
keyutils                  1.6.1                h166bdaf_0    conda-forge
krb5                      1.19.3               h08a2579_0    conda-forge
ld_impl_linux-64          2.39                 hc81fddc_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libblas                   3.9.0           16_linux64_openblas    conda-forge
libcblas                  3.9.0           16_linux64_openblas    conda-forge
libcurl                   7.86.0               h2283fc2_1    conda-forge
libdeflate                1.14                 h166bdaf_0    conda-forge
libedit                   3.1.20191231         he28a2e2_2    conda-forge
libev                     4.33                 h516909a_1    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-devel_linux-64     12.2.0              h3b97bd3_19    conda-forge
libgcc-ng                 12.2.0              h65d4601_19    conda-forge
libgfortran-ng            12.2.0              h69a702a_19    conda-forge
libgfortran5              12.2.0              h337968e_19    conda-forge
libglib                   2.74.1               h7a41b64_0    conda-forge
libgomp                   12.2.0              h65d4601_19    conda-forge
libiconv                  1.17                 h166bdaf_0    conda-forge
liblapack                 3.9.0           16_linux64_openblas    conda-forge
libnghttp2                1.47.0               hff17c54_1    conda-forge
libopenblas               0.3.21          pthreads_h78a6416_3    conda-forge
libpng                    1.6.38               h753d276_0    conda-forge
libsanitizer              12.2.0              h46fd767_19    conda-forge
libssh2                   1.10.0               hf14f497_3    conda-forge
libstdcxx-devel_linux-64  12.2.0              h3b97bd3_19    conda-forge
libstdcxx-ng              12.2.0              h46fd767_19    conda-forge
libtiff                   4.4.0                h55922b4_4    conda-forge
libuuid                   2.32.1            h7f98852_1000    conda-forge
libwebp-base              1.2.4                h166bdaf_0    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxml2                   2.10.3               h7463322_0    conda-forge
libzlib                   1.2.13               h166bdaf_4    conda-forge
make                      4.3                  hd18ef5c_1    conda-forge
ncurses                   6.3                  h27087fc_1    conda-forge
openssl                   3.0.7                h166bdaf_0    conda-forge
pango                     1.50.11              h382ae3d_0    conda-forge
pcre2                     10.37                hc3806b6_1    conda-forge
pixman                    0.40.0               h36c2ea0_0    conda-forge
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
r-backports               1.4.1             r41h06615bd_1    conda-forge
r-base                    4.1.3                h7880091_3    conda-forge
r-brio                    1.1.3             r41h06615bd_1    conda-forge
r-callr                   3.7.3             r41hc72bb7e_0    conda-forge
r-cli                     3.4.1             r41h7525677_1    conda-forge
r-colorspace              2.0_3             r41h06615bd_1    conda-forge
r-crayon                  1.5.2             r41hc72bb7e_1    conda-forge
r-curl                    4.3.3             r41h06615bd_1    conda-forge
r-desc                    1.4.2             r41hc72bb7e_1    conda-forge
r-diffobj                 0.3.5             r41h06615bd_1    conda-forge
r-digest                  0.6.30            r41h7525677_0    conda-forge
r-ellipsis                0.3.2             r41h06615bd_1    conda-forge
r-evaluate                0.18              r41hc72bb7e_0    conda-forge
r-fansi                   1.0.3             r41h06615bd_1    conda-forge
r-farver                  2.1.1             r41h7525677_1    conda-forge
r-fracdiff                1.5_2             r41h64d53c3_0    conda-forge
r-fs                      1.5.2             r41h7525677_2    conda-forge
r-generics                0.1.3             r41hc72bb7e_1    conda-forge
r-ggplot2                 3.4.0             r41hc72bb7e_0    conda-forge
r-glue                    1.6.2             r41h06615bd_1    conda-forge
r-gtable                  0.3.1             r41hc72bb7e_1    conda-forge
r-isoband                 0.2.6             r41h7525677_1    conda-forge
r-jsonlite                1.8.3             r41h06615bd_0    conda-forge
r-labeling                0.4.2             r41hc72bb7e_2    conda-forge
r-lattice                 0.20_45           r41h06615bd_1    conda-forge
r-lifecycle               1.0.3             r41hc72bb7e_1    conda-forge
r-lmtest                  0.9_40            r41h8da6f51_1    conda-forge
r-magrittr                2.0.3             r41h06615bd_1    conda-forge
r-mass                    7.3_58.1          r41h06615bd_1    conda-forge
r-matrix                  1.5_3             r41h5f7b363_0    conda-forge
r-mgcv                    1.8_41            r41h5f7b363_0    conda-forge
r-munsell                 0.5.0           r41hc72bb7e_1005    conda-forge
r-nlme                    3.1_160           r41h8da6f51_0    conda-forge
r-nnet                    7.3_18            r41h06615bd_1    conda-forge
r-pillar                  1.8.1             r41hc72bb7e_1    conda-forge
r-pkgconfig               2.0.3             r41hc72bb7e_2    conda-forge
r-pkgload                 1.3.2             r41hc72bb7e_0    conda-forge
r-praise                  1.0.0           r41hc72bb7e_1006    conda-forge
r-processx                3.8.0             r41h06615bd_0    conda-forge
r-ps                      1.7.2             r41h06615bd_0    conda-forge
r-quadprog                1.5_8             r41hd009a43_4    conda-forge
r-quantmod                0.4.20            r41hc72bb7e_1    conda-forge
r-r6                      2.5.1             r41hc72bb7e_1    conda-forge
r-rcolorbrewer            1.1_3             r41h785f33e_1    conda-forge
r-rcpp                    1.0.9             r41h7525677_0    conda-forge
r-rcpparmadillo           0.11.4.2.1        r41h9f5de39_0    conda-forge
r-rematch2                2.1.2             r41hc72bb7e_2    conda-forge
r-rlang                   1.0.6             r41h7525677_1    conda-forge
r-rprojroot               2.0.3             r41hc72bb7e_1    conda-forge
r-scales                  1.2.1             r41hc72bb7e_1    conda-forge
r-testthat                3.1.5             r41h7525677_1    conda-forge
r-tibble                  3.1.8             r41h06615bd_1    conda-forge
r-timedate                4021.106          r41hc72bb7e_1    conda-forge
r-tseries                 0.10_52           r41hd009a43_0    conda-forge
r-ttr                     0.24.3            r41h06615bd_1    conda-forge
r-urca                    1.3_3             r41h8da6f51_0    conda-forge
r-utf8                    1.2.2             r41h06615bd_1    conda-forge
r-vctrs                   0.5.1             r41h7525677_0    conda-forge
r-viridislite             0.4.1             r41hc72bb7e_1    conda-forge
r-waldo                   0.4.0             r41hc72bb7e_1    conda-forge
r-withr                   2.5.0             r41hc72bb7e_1    conda-forge
r-xts                     0.12.2            r41h06615bd_0    conda-forge
r-zoo                     1.8_11            r41h06615bd_1    conda-forge
readline                  8.1.2                h0f457ee_0    conda-forge
sed                       4.8                  he412f7d_0    conda-forge
sysroot_linux-64          2.12                he073ed8_15    conda-forge
tk                        8.6.12               h27826a3_0    conda-forge
tktable                   2.10                 hb7b940f_3    conda-forge
xorg-kbproto              1.0.7             h7f98852_1002    conda-forge
xorg-libice               1.0.10               h7f98852_0    conda-forge
xorg-libsm                1.2.3             hd9c2040_1000    conda-forge
xorg-libx11               1.7.2                h7f98852_0    conda-forge
xorg-libxau               1.0.9                h7f98852_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xorg-libxext              1.3.4                h7f98852_1    conda-forge
xorg-libxrender           0.9.10            h7f98852_1003    conda-forge
xorg-libxt                1.2.1                h7f98852_2    conda-forge
xorg-renderproto          0.11.1            h7f98852_1002    conda-forge
xorg-xextproto            7.3.0             h7f98852_1002    conda-forge
xorg-xproto               7.0.31            h7f98852_1007    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
zlib                      1.2.13               h166bdaf_4    conda-forge
zstd                      1.5.2                h6239696_4    conda-forge

環境の削除

データベース内のOMLユーザーのオブジェクト・ストレージに環境をアップロードする予定がない場合は、ノートブック・セッションを終了するだけで範囲外になります。あるいは、env removeコマンドを使用して明示的に削除することもできます。myenv環境を削除し、削除されたことを確認します。ベスト・プラクティスは、削除する前に環境を非アクティブ化することです。env removeコマンドのヘルプを表示するには、%condaインタプリタにenv remove --helpと入力します。

  • 環境を非アクティブ化する。

    %conda
    
    deactivate
    Conda environment deactivated
  • 環境を削除する。

    %conda
    
    env remove -n myenv
    

    環境をリストして、環境が削除されているかどうかを確認します。

    env list
    # conda environments:
    #
    myrenv                   /u01/.conda/envs/myrenv
    base                  *  /usr
    conda-pack-env           /usr/envs/conda-pack-env

    環境/u01/.conda/envs/myenv内の全パッケージを削除します。

インストール対象のパッケージの指定

conda-forgeチャネルからのパッケージのインストール

Condaチャネルは、パッケージが格納される場所です。パッケージをホストおよび管理するための基盤として機能します。Condaパッケージは、リモート・チャネル(condaパッケージが格納されているディレクトリへのURL)からダウンロードします。condaコマンドよって一連のチャネルが検索されます。デフォルトでは、パッケージはデフォルトのチャネルから自動的にダウンロードおよび更新されます。conda-forgeチャネルは、誰でも無料で使用できます。自動的に検索されるリモート・チャネルを変更できます。これは、プライベートまたは内部チャネルを管理するために実行することがあります。次の例では、数千人の貢献者で構成されるコミュニティ・チャネルであるconda-forgeチャネルを使用しています。

  • 特定のバージョンのパッケージをインストールする。

    特定のバージョンのパッケージをインストールするには、<package_name>=<version>を使用します。

  • conda-forgeを使用して環境を作成する。

    %conda
    
    create -n mychannelenv -c conda-forge --override-channels --strict-channel-priority r-forecast
    
    activate mychannelenv
  • チャネルを指定して、conda-forgeからパッケージをインストールする。

    %conda
    
    install forecast --channel conda-forge
  • 特定のバージョンのパッケージをインストールする。

    %conda
    
    install r-forecast=8.18