다른 서버의 yum 저장소로 사용하는 rhel 서버가 있습니다. 이제 Python 패키지도 제공해야 합니다. 패키지를 다운로드할 아나콘다 저장소를 찾았습니다.https://repo.continuum.io/pkgs/main/linux-64/다음 명령을 사용하여 모든 패키지를 다운로드합니다.
wget -A bz2 https://repo.continuum.io/pkgs/main/linux-64/ -P /path_for_packages
모든 패키지가 tar.bz2 형식이기 때문에 -A bz2를 사용합니다.
또한 인터넷에 연결할 수 없지만 리포지토리 서버와 통신할 수 있는 클라이언트 컴퓨터가 있습니다.
목적은 서버 시스템에서 클라이언트 시스템으로 소프트웨어 패키지를 설치/다운로드하는 것입니다.
두 서버 모두에 anaconda 4.5.11이 있습니다. 또한 클라이언트 컴퓨터의 ".condarc" 파일에 채널(클라이언트가 패키지를 찾는 경로)을 지정했습니다.
# This is a sample .condarc file.
# It adds the r Anaconda.org channel and enables
# the show_channel_urls option.
# channel locations. These override conda defaults, i.e., conda will
# search *only* the channels listed here, in the order given.
# Use "defaults" to automatically include all default channels.
# Non-url channels will be interpreted as Anaconda.org usernames
# (this can be changed by modifying the channel_alias key; see below).
# The default is just 'defaults'.
channels:
- http://<IP_ADDRESS>/Path/To/Packages
# Show channel URLs when displaying what is going to be downloaded
# and in 'conda list'. The default is False.
show_channel_urls: True
# For more information about this file see:
# https://conda.io/docs/user-guide/configuration/use-condarc.html
위 명령을 사용하여 클라이언트 컴퓨터에서 패키지를 설치하려고 하면 다음과 같습니다.
conda install wget
Solving environment: failed
# >>>>>>>>>>>>>>>>>>>>>> ERROR REPORT <<<<<<<<<<<<<<<<<<<<<<
Traceback (most recent call last):
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 227, in _load
mod_etag_headers.get('_mod'))
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 574, in fetch_repodata_remote_request
raise Response304ContentUnchanged()
conda.core.subdir_data.Response304ContentUnchanged
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/root/anaconda3/lib/python3.7/site-packages/conda/exceptions.py", line 819, in __call__
return func(*args, **kwargs)
File "/root/anaconda3/lib/python3.7/site-packages/conda/cli/main.py", line 78, in _main
exit_code = do_call(args, p)
File "/root/anaconda3/lib/python3.7/site-packages/conda/cli/conda_argparse.py", line 77, in do_call
exit_code = getattr(module, func_name)(args, parser)
File "/root/anaconda3/lib/python3.7/site-packages/conda/cli/main_install.py", line 11, in execute
install(args, parser, 'install')
File "/root/anaconda3/lib/python3.7/site-packages/conda/cli/install.py", line 235, in install
force_reinstall=context.force,
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 518, in solve_for_transaction
force_remove, force_reinstall)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 451, in solve_for_diff
final_precs = self.solve_final_state(deps_modifier, prune, ignore_pinned, force_remove)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 180, in solve_final_state
index, r = self._prepare(prepared_specs)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/solve.py", line 592, in _prepare
self.subdirs, prepared_specs)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/index.py", line 215, in get_reduced_index
new_records = query_all(spec)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/index.py", line 184, in query_all
return tuple(concat(future.result() for future in as_completed(futures)))
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 95, in query
self.load()
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 149, in load
_internal_state = self._load()
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 233, in _load
mod_etag_headers.get('_mod'))
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 280, in _read_local_repdata
_internal_state = self._process_raw_repodata_str(raw_repodata_str)
File "/root/anaconda3/lib/python3.7/site-packages/conda/core/subdir_data.py", line 320, in _process_raw_repodata_str
assert subdir == self.channel.subdir
AssertionError
`$ /root/anaconda3/bin/conda install wget`
environment variables:
CIO_TEST=<not set>
CONDA_DEFAULT_ENV=base
CONDA_EXE=/root/anaconda3/bin/conda
CONDA_PREFIX=/root/anaconda3
CONDA_PROMPT_MODIFIER=
CONDA_PYTHON_EXE=/root/anaconda3/bin/python
CONDA_ROOT=/root/anaconda3
CONDA_SHLVL=1
PATH=/root/anaconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:
/root/bin
REQUESTS_CA_BUNDLE=<not set>
SSL_CERT_FILE=<not set>
active environment : base
active env location : /root/anaconda3
shell level : 1
user config file : /root/.condarc
populated config files : /root/.condarc
conda version : 4.5.11
conda-build version : 3.15.1
python version : 3.7.0.final.0
base environment : /root/anaconda3 (writable)
channel URLs : http://<IP_Address>/Path/To/Packages
http://<IP_Address>/Path/To/Packages
package cache : /root/anaconda3/pkgs
/root/.conda/pkgs
envs directories : /root/anaconda3/envs
/root/.conda/envs
platform : linux-64
user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Linux/3.10.0-327.el7.x86_64 rhel/7.2 glibc/2.17
UID:GID : 0:0
netrc file : None
offline mode : False
An unexpected error has occurred. Conda has prepared the above report.
If submitted, this report will be used by core maintainers to improve
future releases of conda.
Would you like conda to send this report to the core maintainers?
[y/N]: n
No report sent. To permanently opt-out, use
$ conda config --set report_errors false
내가 시도한 것:
https://github.com/conda/conda/issues/7524
또한 아나콘다 버전을 "4.3.30"으로 다운그레이드해 보았습니다. 이 버전에서는 다음과 같은 새로운 오류가 발생했습니다.
conda install anaconda
Fetching package metadata .....
CondaEnvironmentNotFoundError: Could not find environment: /root/anaconda3/envs/base .
You can list all discoverable environments with `conda info --envs`.
이 오류는 repo 서버에 다음과 같은 환경이 없음을 나타냅니다.
http://<IP_Address>/Path/To/Packages
여기에 원격 환경을 추가하는 것이 가능한지 모르겠습니다. 환경을 추가하는 방법은 다음과 같습니다.
conda --set custom_channels.my-conda-channel http://<IP_Address>/Path/To/Package
하지만 추측한 대로 로컬 경로만 추가할 수 있습니다.
답변1
Anaconda 버전에 문제가 있습니다. 최신 버전에서는 Windows 시스템이 원격 저장소에서 필요한 패키지를 설치할 수 없습니다. 이 문제를 해결하려면 anaconda3-5.0.1 설치 프로그램 exe를 다운로드해야 합니다.