※condaって何ですか???①の続きになります。先に読んでいただいたほうが流れはつかめるのかなと思います。
はいconda何ですかの2番目です。前回condaとは
あらゆる言語のパッケージ、依存関係、環境管理である。
って話をした上で、condaとpipの一番大きな違いは
pipはpythonのパッケージ管理ができるのに対しcondaはpython以外の様々な言語のパッケージが管理できるって話をしました。
んで今回なんですが、公式ドキュメントにある
あらゆる言語のパッケージ、依存関係、環境管理
の依存関係について少し調べてみたのでここに書いてきます。
IT用語辞典 e-wordsさん曰く、依存関係とは
ある要素が別の要素の存在や完了などを前提としている関係のこと。主にソフトウェア間の関係やプロジェクト管理におけるタスク間の関係を表すのに用いられる。
ま割と言葉の意味のまんまなんですが、正直あんまりイメージがつかなかったのでもう少し調べてみましたが、
わかりやすい気がする例を出すとするなら、
fortniteをプレイしたいとしましょう。
Windowsではもちろん問題なくプレイできますが、fortniteはMacでは動作しません。
この場合、fortniteを作動させるにはwindowsが必要になります。
FortniteというソフトウェアはwindowsというOS(ソフトウェア)に依存しています。
このような関係性をソフトウェア間の依存関係というみたいです。
condaはこの依存関係を管理するために
・環境の分離
・依存関係の競合の識別
を行ってくれます。
condaによる環境管理は次回取り扱う予定ですが、例えるなら
一つのコートで二つ別のスポーツすると混乱するから別のコートにわけよ
って感じですw。わかりずらくてすいません。次回ちゃんと説明します。
で二つ目の依存関係の競合の識別。
まず依存関係の競合っていうのは、依存関係が成立しない、矛盾してる状態です。
さっきのfortniteの例でいうなら、どうにかしてfortniteをmacで動かそうとしてる状態です。
一応裏技みたいなのはいくつかありますが(クラウドゲーミングやwindowsエミュレータ等),通常ではできません。
そういったときにcondaは
「必要な条件そろってないよー」
と教えてくれるみたいです。
でcondaはわかる範囲で
「これが足りてないよー」とか「これがバージョン古いよ」
とかも教えてくれるみたいです。
以上です。なんというか、今回は例えが多かったですね。
全体的に理解しずらい部分が多かったので例えてみましたが、わかりやすくなってれば幸いです。
すでに言ってますが次回はcondaの環境管理についてふかぼって行こうと思いますのでよろしくお願いします。
また毎度のことですが、間違い等あればコメントで指摘していただけると助かります。
ではお疲れさまでした。