저는 Linux 2.6.32-openvz-042stab120.11-amd64 OpenVZ 컨테이너에서 Debian 8.9 Jessie를 실행하고 있습니다.
0.9.1을 사용하려고 하는 curlftpfs
이유는 해당 버전의 한 가지 기능인 Open(Read+Write) 및 Open(Write)이 후속 버전에서 제거되었기 때문입니다.
현재 버전은 다음과 같습니다 0.9.2-9~deb8u1
.
apt-cache policy curlftpfs
curlftpfs:
Installed: (none)
Candidate: 0.9.2-9~deb8u1
Version table:
0.9.2-9~deb8u1 0
500 http://ftp.debian.org/debian/ jessie/main amd64 Packages
내가 찾을 수 있습니다Debian Snapshot의 바이너리와 소스 코드.
.deb
그러나 바이너리를 설치하려고 하면 충족되지 않은 종속성이 발생합니다.
# dpkg -i ./curlftpfs_0.9.1-3_amd64.deb
Selecting previously unselected package curlftpfs.
(Reading database ... 44948 files and directories currently installed.)
Preparing to unpack ./curlftpfs_0.9.1-3_amd64.deb ...
Unpacking curlftpfs (0.9.1-3) ...
dpkg: dependency problems prevent configuration of curlftpfs:
curlftpfs depends on fuse-utils; however:
Package fuse-utils is not installed.
curlftpfs depends on libgnutls13 (>= 2.0.4-0); however:
Package libgnutls13 is not installed.
curlftpfs depends on libkrb53 (>= 1.6.dfsg.2); however:
Package libkrb53 is not installed.
curlftpfs depends on libldap2 (>= 2.1.17-1); however:
Package libldap2 is not installed.
dpkg: error processing package curlftpfs (--install):
dependency problems - leaving unconfigured
Processing triggers for man-db (2.7.0.2-5) ...
Errors were encountered while processing:
curlftpfs
그리고 apt-get
이러한 종속성을 설치할 수 없다고 알려줍니다.
#apt-get install
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
curlftpfs : Depends: fuse-utils but it is not installable
Depends: libgnutls13 (>= 2.0.4-0) but it is not installable
Depends: libkrb53 (>= 1.6.dfsg.2) but it is not installable
Depends: libldap2 (>= 2.1.17-1) but it is not installable
E: Unmet dependencies. Try using -f.
하지만 실행하면 apt-get -f install
설치됩니다.현재의.curlftpfs
시도해 보는 것이 더 잘 작동하지 않았습니다 gdebi
.
# gdebi curlftpfs_0.9.1-3_amd64.deb
Reading package lists... Done
Building dependency tree
Reading state information... Done
Building data structures... Done
Building data structures... Done
Este pacote n\xe3o pode ser desinstalado
Dependency is not satisfiable: fuse-utils
소스 목록에 debian-snapshot을 추가하면 원하는 특정 패키지 버전을 얻을 수 있지만 종속성 지옥에 빠지게 됩니다.
apt-get install -f curlftpfs=0.9.1-3+b2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
curlftpfs : Depends: libkrb53 (>= 1.6.dfsg.2) but it is not going to be installed
Depends: fuse-utils but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
root@tunnelserver:~/temp# apt-get install fuse-utils
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
fuse-utils : Depends: libfuse2 (= 2.7.3-4) but 2.9.3-15+deb8u2 is to be installed
E: Unable to correct problems, you have held broken packages.
root@tunnelserver:~/temp# apt-get install libfuse2=2.7.3-4
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libselinux1-dev libsepol1-dev
Use 'apt-get autoremove' to remove them.
Suggested packages:
fuse-utils
The following packages will be REMOVED:
fuse gvfs-fuse libfuse-dev ntfs-3g sshfs testdisk
The following packages will be DOWNGRADED:
libfuse2
0 upgraded, 0 newly installed, 1 downgraded, 6 to remove and 0 not upgraded.
Need to get 128 kB of archives.
After this operation, 4059 kB disk space will be freed.
Do you want to continue? [Y/n] n
그래서 저는 바이너리를 만들기로 결정했습니다. 아래 사이트에서 소스코드를 다운로드 받았습니다.데비안 스냅샷, diff 패치를 적용하고 실행하면 ./configure
다음 오류가 발생합니다 debian configure: error: "libcurl not found"
. ::
# ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
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 how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln -s works... yes
checking whether make sets $(MAKE)... (cached) yes
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... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking how to recognise dependent libraries... pass_all
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 dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... no
checking for c++... no
checking for gpp... no
checking for aCC... no
checking for CC... no
checking for cxx... no
checking for cc++... no
checking for cl.exe... no
checking for FCC... no
checking for KCC... no
checking for RCC... no
checking for xlC_r... no
checking for xlC... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking for g77... no
checking for xlf... no
checking for f77... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for xlf90... no
checking for f90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... no
checking for g95... no
checking for xlf95... no
checking for f95... no
checking for fort... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking for correct ltmain.sh version... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... 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
configure: creating libtool
appending configuration tag "CXX" to libtool
appending configuration tag "F77" to libtool
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for GLIB... yes
checking for FUSE... yes
checking for gawk... (cached) gawk
checking for curl-config... no
checking whether libcurl is usable... no
configure: error: "libcurl not found"
libcurl
설치할 패키지를 찾을 수 없습니다 . 어떻게 진행하나요?
답변1
나는 그것을 설치하면 더 이상 누락에 대해 불평하지 않는다는 libcurl4-openssl-dev
것을 발견했습니다 .make
libcurl
apt-get install libcurl4-openssl-dev
아쉽게도 설명을 드릴 수가 없네요왜또는어떻게이런 일이 발생합니다(애매한 패키지 설치를 제외하고)라이브러리 컬).
하지만 직접 테스트해본 결과 작동하는 것을 확인했습니다. 그래서 여기에 답을 남깁니다.
답변2
@That Brazil Guy의 답변이 작동하는 이유에 대한 추가 설명입니다.
libcurl3-dev
여러 패키지로 제공되며 그 중 하나는 다음과 같습니다.libcurl4-openssl-dev
무엇을 먼저 설치해야 합니까 libcurl
? 우리는 그것이 이미 libcurl3
설치되어 있음을 발견했습니다.
# aptitude search libcurl
v libcurl-dev -
v libcurl-dev:i386 -
p libcurl-ocaml - OCaml curl bindings (Runtime Library)
p libcurl-ocaml:i386 - OCaml curl bindings (Runtime Library)
v libcurl-ocaml-d6l49 -
p libcurl-ocaml-dev - OCaml libcurl bindings (Development package)
p libcurl-ocaml-dev:i386 - OCaml libcurl bindings (Development package)
v libcurl-ocaml-dev-d6l49 -
v libcurl-ocaml-dev-ephj1:i386 -
v libcurl-ocaml-ephj1:i386 -
v libcurl-ssl-dev -
v libcurl-ssl-dev:i386 -
i A libcurl3 - easy-to-use client-side URL transfer library (OpenSSL flavour)
p libcurl3:i386 - easy-to-use client-side URL transfer library (OpenSSL flavour)
p libcurl3-dbg - debugging symbols for libcurl (OpenSSL, GnuTLS and NSS flavours
p libcurl3-dbg:i386 - debugging symbols for libcurl (OpenSSL, GnuTLS and NSS flavours
v libcurl3-dev -
v libcurl3-dev:i386 -
i A libcurl3-gnutls - easy-to-use client-side URL transfer library (GnuTLS flavour)
p libcurl3-gnutls:i386 - easy-to-use client-side URL transfer library (GnuTLS flavour)
v libcurl3-gnutls-dev -
v libcurl3-gnutls-dev:i386 -
p libcurl3-nss - easy-to-use client-side URL transfer library (NSS flavour)
p libcurl3-nss:i386 - easy-to-use client-side URL transfer library (NSS flavour)
v libcurl3-nss-dev -
v libcurl3-nss-dev:i386 -
v libcurl3-openssl-dev -
v libcurl3-openssl-dev:i386 -
v libcurl4-dbg -
v libcurl4-dbg:i386 -
v libcurl4-dev -
v libcurl4-dev:i386 -
p libcurl4-doc - documentation for libcurl
p libcurl4-gnutls-dev - development files and documentation for libcurl (GnuTLS flavour
p libcurl4-gnutls-dev:i386 - development files and documentation for libcurl (GnuTLS flavour
p libcurl4-nss-dev - development files and documentation for libcurl (NSS flavour)
p libcurl4-nss-dev:i386 - development files and documentation for libcurl (NSS flavour)
p libcurl4-openssl-dev - development files and documentation for libcurl (OpenSSL flavou
p libcurl4-openssl-dev:i386 - development files and documentation for libcurl (OpenSSL flavou
p libcurlpp-dev - c++ wrapper for libcurl (development files)
p libcurlpp-dev:i386 - c++ wrapper for libcurl (development files)
p libcurlpp0 - c++ wrapper for libcurl
p libcurlpp0:i386 - c++ wrapper for libcurl
해 보자libcurl-dev
# apt-get install libcurl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libcurl-dev is a virtual package provided by:
libcurl4-openssl-dev 7.35.0-1ubuntu2.13
libcurl4-nss-dev 7.35.0-1ubuntu2.13
libcurl4-gnutls-dev 7.35.0-1ubuntu2.13
You should explicitly select one to install.
E: Package 'libcurl-dev' has no installation candidate
아니 libcurl4
그런 것 같으니 조심해야겠습니다...
libcurl3-dev
직접 사용해 보세요
# apt-get install libcurl3-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libcurl4-openssl-dev' instead of 'libcurl3-dev'
The following extra packages will be installed:
comerr-dev krb5-multidev libgcrypt11-dev libgnutls-dev libgnutlsxx27
libgpg-error-dev libgssrpc4 libidn11-dev libkadm5clnt-mit9 libkadm5srv-mit9
libkdb5-7 libkrb5-dev libldap2-dev libp11-kit-dev librtmp-dev libtasn1-6-dev
Suggested packages:
krb5-doc libcurl4-doc libcurl3-dbg libgcrypt11-doc gnutls26-doc gnutls-bin
krb5-user
The following NEW packages will be installed:
comerr-dev krb5-multidev libcurl4-openssl-dev libgcrypt11-dev libgnutls-dev
libgnutlsxx27 libgpg-error-dev libgssrpc4 libidn11-dev libkadm5clnt-mit9
libkadm5srv-mit9 libkdb5-7 libkrb5-dev libldap2-dev libp11-kit-dev
librtmp-dev libtasn1-6-dev
0 upgraded, 17 newly installed, 0 to remove and 4 not upgraded.
Need to get 2,542 kB of archives.
After this operation, 11.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
그러니까 libcurl3-dev
우리가 원한다고 해도 libcurl4-openssl-dev
우린 그냥...