최근에 시스템에 Arch Linux를 설치했는데 일부 파일을 클라우드와 동기화할 수 있도록 Dropbox 클라이언트를 설정하고 싶습니다. 지시에 따라 소스에서 클라이언트를 컴파일하려고 합니다.Linux용 Dropbox 설치 프로그램을 구축하려면 어떻게 해야 하나요?. 하지만 문제가 있습니다. 설치하라는 메시지가 표시되고 pygtk
팩맨을 사용하여 설치했지만 다시 시작한 후에도 다음을 실행합니다.
cd ./nautilus-dropbox-2015.10.28; ./configure; make; make install;
다음만 반환:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... /usr/bin/sed
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for pkg-config... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for NAUTILUS... yes
checking for GLIB... yes
checking for python... /usr/bin/python
checking for rst2man... python rst2man.py
checking for pygtk... no
configure: error: couldn't find pygtk
make: *** No targets specified and no makefile found. Stop.
make: *** No rule to make target 'install'. Stop.
내 시스템은 최신입니다. 무엇이 누락되었나요?
정보 업데이트:
시스템 구성 정보가 많기 때문에 전체 로그를 제공하지 않고 혹시라도 온라인에 게시하고 싶지 않지만 요청된 내용 중 관련 부분이라고 생각되는 부분은 다음과 같습니다 config.log
.
configure:10713: checking for python
configure:10731: found /usr/bin/python
configure:10743: result: /usr/bin/python
configure:10754: checking for rst2man
configure:10785: result: python rst2man.py
configure:10799: checking for pygtk
configure:10812: result: no
configure:10814: error: couldn't find pygtk
하지만 이 오류 메시지는 문제가 무엇인지, 문제를 찾을 수 없는 이유를 이해하는 데 실제로 도움이 되지 않습니다 pygtk
.
답변1
나는 같은 문제가 있었고 심볼릭 링크를 수정하여 가리키는 것이 python
작동 python2.7
하지 않았습니다.
나에게 도움이 된 것은 다음 명령을 실행하여 각 파일에서 발생하는 python
모든 것을 바꾸는 것입니다 python2
nautilus-dropbox-2.10.0
.
grep -rl python . | xargs sed -i 's/python/python2/g'
그 후 나는 configure
, make
및 make install
명령을 실행했습니다.
답변2
같은 일을 시도하는 동안 이 문제가 발생했는데 왜 이런 일이 발생하는지 알 것 같습니다.
Arch Linux에서 Python을 실행하면 거의 모든 Linux 운영 체제와 달리 Python 2 대신 Python 3이 호출됩니다. 저는 Arch Linux를 정말 좋아하지만, 솔직히 Python 2가 소스에서 빌드하는 전체 프로세스를 복잡하게 만들기 때문에 Python 2가 기본값이 아닌 이유를 모르겠습니다. 심볼릭 링크를 Python 2를 가리키는 심볼릭 링크로 바꾸면 안 됩니다 python
. 다른 모든 것을 망칠 수 있기 때문입니다.
어쨌든, 나는 configure
Python에서 pygtk를 import하려고 시도하여 확인했습니다. Python 2에서는 import pygtk
이를 실행하면 작동하지만 Python 3에서는 실행하면 오류가 발생합니다.
>>> import pygtk
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pygtk'
이제 이 문제를 어떻게 해결해야 할까요? 잘 모르겠습니다. Dropbox 내부를 PYTHON
가리키도록 변수를 변경해 보았지만 작동하지 않는 것 같습니다.python2
원래 질문에 대한 대답은 아무것도 누락되지 않았다는 것입니다. python
단지 /usr/bin/python3
.
답변3
configure
Python 2 대신 Python 3을 사용한다고 말씀하셨듯이 이 문제를 어느 정도 해결했습니다 .
바이너리 폴더로 이동하여 cd /usr/bin
Python 3에서 Python 2로 심볼릭 링크를 수정하고 설치가 완료된 후 복원할 수 있도록 백업을 보관하세요.
sudo mv python python.old
sudo ln -s python2.7 python
그런 다음 패키지 폴더로 돌아가서 make
build dropbox를 실행할 수 있습니다. 완료되면 Python 3에 대한 심볼릭 링크를 복원해야 합니다. 그렇지 않으면 시스템에 몇 가지 문제가 발생합니다.
cd /usr/bin
sudo mv python.old python
이제 Dropbox 애플리케이션에 심볼릭 링크를 따르지 않고 /usr/bin/python
기존 심볼릭 링크를 따르도록 지시해야 합니다 /usr/bin/python2
. 이렇게 하려면 즐겨 사용하는 텍스트 편집기(사용 하지 않으면 편집할 수 없음) /usr/bin/dropbox
에서 파일을 열고 첫 번째 줄 을 .sudo
#!/usr/bin/python
#!/usr/bin/python2
dropbox start
이제 호환성 문제 없이 입력만으로 Dropbox API를 시작할 수 있습니다 .
답변4
나는 최근에 이 문제에 부딪혔고 내가 발견한 것은 (이전 답변에서 제안한 것 외에)구성스크립트가 가져오기를 시도합니다.GTK모듈이 아니라피그크예상대로.
$as_echo_n "checking for pygtk... " >&6; }
cat <<EOF | python
try:
import gtk
except:
exit(1)
else:
해결책은 de를 사용하는 것입니다.GTK~을 위한피그크그 라인에
sed -i 's/ gtk/ pygtk/g' nautilus-dropbox-2.10.0/configure
원래 질문과 다른 패키지 버전이라는 것을 알고 있지만 오류 메시지가 동일하므로 동일한 문제를 다루는 사람들에게 도움이 될 수 있습니다.