[英]What is the difference between conda install and conda update?
conda install
和conda update
什么區別? 我瀏覽了文檔,沒有看到任何明顯的區別。
文檔說:
從conda install
:
Conda 嘗試安裝所請求軟件包的最新版本。 為此,它可能會更新一些已安裝的軟件包,或安裝其他軟件包。 要防止更新現有包,請使用 --no-update-deps 選項。 這可能會強制 conda 安裝請求包的舊版本,並且不會阻止安裝其他依賴包。
從conda update
:
Conda 嘗試安裝所請求軟件包的最新版本。 為此,它可能會更新一些已安裝的軟件包,或安裝其他軟件包。 要防止更新現有包,請使用 --no-update-deps 選項。 這可能會強制 conda 安裝請求包的舊版本,並且不會阻止安裝其他依賴包。
這正是您提供的文檔所說的。 對於 conda 安裝:
將軟件包列表安裝到指定的 conda 環境中。
對於 conda 更新:
將 conda 包更新到最新的兼容版本。
在問題中引用的文檔文本的上下文中
... Conda 嘗試安裝所請求軟件包的最新版本....
需要強調的是,文檔並沒有完全清楚地說明安裝和更新之間的區別。 文檔對安裝的內容有相同的解釋而沒有澄清條件這一事實肯定有點令人困惑(至少對我而言)。
安裝和更新之間的隱含區別不僅在於,如果您嘗試更新不存在的包(問題的評論中提到的內容),則會出現錯誤,而且還有副作用(依賴項的處理) install
和update
不同。
一個真實世界的例子:
(base) 535> conda install -d sphinx
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /data/anaconda3
added / updated specs:
- sphinx
The following packages will be downloaded:
package | build
---------------------------|-----------------
sphinx-3.0.3 | py_0 1.1 MB
------------------------------------------------------------
Total: 1.1 MB
The following packages will be UPDATED:
sphinx 2.4.0-py_0 --> 3.0.3-py_0
而更新導致
(base) 536> conda update -d sphinx
Collecting package metadata (current_repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /data/anasynth_nonbp/anaconda3
added / updated specs:
- sphinx
The following packages will be downloaded:
package | build
---------------------------|-----------------
astroid-2.4.1 | py36_0 279 KB
...
sphinx-3.0.3 | py_0 1.1 MB
...
zipp-3.1.0 | py_0 13 KB
------------------------------------------------------------
Total: 39.8 MB
The following NEW packages will be INSTALLED:
importlib-metadata pkgs/main/linux-64::importlib-metadata-1.6.0-py36_0
prompt-toolkit pkgs/main/noarch::prompt-toolkit-3.0.4-py_0
toml pkgs/main/linux-64::toml-0.10.0-py36h28b3542_0
The following packages will be REMOVED:
asn1crypto-1.3.0-py36_0
The following packages will be UPDATED:
astroid 2.3.3-py36_0 --> 2.4.1-py36_0
...
sphinx 2.4.0-py_0 --> 3.0.3-py_0
...
zipp 2.2.0-py_0 --> 3.1.0-py_0
沒有調查到最后的細節,似乎可以總結如下(最后用conda 4.8.3
測試):
康達安裝
安裝最新版本的請求包,對已安裝的包進行最少的更改。
康達更新
如果包存在,將更新到最新版本,否則將給出錯誤。 此外,它還更新作為參數列出的包的所有依賴項。 即使參數中的包已經是最新版本, conda update
也會更新這些。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.