naver / arcus

ARCUS is the NAVER memcached with lists, sets, maps and b+trees. http://naver.github.io/arcus
Apache License 2.0
304 stars 77 forks source link

Ubuntu 18.04 환경에서의 easy_install command not found 이슈 #46

Closed LimChaeHoon closed 4 years ago

LimChaeHoon commented 4 years ago

Ubuntu 20.04, 18.04 에서는 easy_install command 가 Arcus에서 가이드를 했던 command 로 충족되지 않는다. 이에 build.sh 를 내 easy_install command에 대한 pull path를 지정해야만 한다. (Arcus는 Document를 Update할 필요성이 있다.)

[Arcus 가이드 Command] sudo apt-get install build-essential autoconf automake libtool libcppunit-dev python-setuptools python-dev (Ubuntu)

[해결방법: build.sh] easy_install="python /usr/lib/python2.7/dist-packages/easy_install.py " # add line .... $easy_install -a -d $pythonpath -i $pythonsimpleindex kazoo==2.6.1 1>> $arcus_directory/scripts/build.log 2>&1 printf "\r[python kazoo library install] .. SUCCEED\n"

SuhwanJang commented 4 years ago

@LimChaeHoon 님. 이슈 올려주셔서 감사합니다. 본 이슈와 관련하여 추가적으로 코멘트 드립니다.

Ubuntu 18.04 이상에서 제공되는 python-setuptools 에는 더 이상 easy_install 이 포함되지 않아 build.sh에서 easy_install 사용 시 command not found 에러가 나오게 됩니다.

According to the changelog easy_install was removed from the python-setuptools package.

I've got no good news for you; I've not found a solution short of updating the legacy scripts to use pip (and hoping the version pip installs works).

In your case its pip you're trying to get from easy_install, so you can probably omit the line since the version of pip in bionic is 9.0.1-2. A better change to the script might check that pip --version is less than 9.0.1 before trying to install that alternate version via easy_install.
(https://askubuntu.com/questions/1040392/easy-install-command-not-found/1052682#1052682)

알려주신 해결방법처럼 easy_install full path 를 주면 해결이 되긴 하지만, python version과 path를 명시하는 것보다는 python -m 을 통해 easy_install을 실행시키는 방법이 좋을 것 같습니다.

python -m easy_install -a -d $pythonpath -i $pythonsimpleindex kazoo==2.6.1 1>> $arcus_directory/scripts/build.log 2>&1
printf "\r[python kazoo library install] .. SUCCEED\n"

m 옵션의 역할은 When called with -m module-name, the given module is located on the Python module path and executed as a script. 입니다.

SuhwanJang commented 4 years ago

merged : https://github.com/naver/arcus/commit/64c207256f0b549b2673a71c7201cd5d141e8186 build.sh 에서 easy_install 을 python -m 옵션으로 수행하도록 변경하였습니다.

@LimChaeHoon 확인하신 후 issue close 요청드립니다.