CURL'de SFTP Desteği nasıl etkinleştirilir?


15

Curl-7.27.0'ı yükledim ve iyi çalışıyor. Ancak, koştuğum zaman curl -V:

curl 7.21.6 (i686-pc-linux-gnu) libcurl/7.21.6 OpenSSL/1.0.0e zlib/1.2.3.4 libidn/1.22 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz

SFTP protokolünü nasıl etkinleştiririm?

Yanıtlar:


15

Önce curlsftp desteği ile derlemelisiniz .

Kıvrılma kaynağını indirin ve ambalajından çıkarın. Daha sonra:

sudo uygun-almak install yapı temel debhelper libssh2-1-dev
sudo apt-get source Instagram Hesabındaki Resim ve Videoları libcurl3
sudo apt-get build-dep libcurl3

cd curl-x.xx.x / debian

nano kuralları

bul ve değiştir "--without-libssh2" ile "--with-libssh2"

cd ..

sudo dpkg-buildpackage

cd ..

sudo dpkg -i curl_xxxxx.deb
sudo dpkg -i libcurl3_xxxx.deb
sudo dpkg -i libcurl3-gnutls_xxxx.deb

Komutları uygun sürümlerle güncelleyin, tabii. Daha fazla bilgi burada .


Bunu araştırdığımda, bununla karşılaştığım küçük bir problemin ne kadar olduğunu gördüm. senden nasıl geçersin bu bağlantıda var . <br/> ** 1) curl-x.xx.x / debian dizinini veya dosyasını curl kaynağını çıkardıktan sonra bile hiçbir yerde bulamadım? <br/> 2) Doğru kaynak olan bir fikrimin olmaması mümkün olabilir mi? indirdiğim kaynak nasıl bu Curl
Source'da

Yine de en azından sorunu çözmeye çalıştığınız için teşekkür ederim ve burada bahsettiğim 2 sorunu kontrol etmenizi rica ediyorum. bir gr8 zaman var.
Hrish

Frantique'in cevabına göre bugün bir araya getirdiklerim - gist.github.com/matschaffer/966b95d160d02d377700
Mat Schaffer

6

Eğer bulamazsanız --without-libssh2ile yerine --with-libssh2arayabilirsiniz sizin --without-sslve ekleme --with-libssh2 Sürüm, kıvrılma ile test 7.35.0 üzerinde Ubuntu 14.04.2

Frantique'den özel cevap:

Kıvrılma kaynağını indirin ve ambalajından çıkarın. Daha sonra:

sudo apt-get install build-essential debhelper libssh2-1-dev
sudo apt-get source libcurl3
sudo apt-get build-dep libcurl3

cd curl-*/debian

nano rules

Bul --without-sslve ekle --with-libssh2, benim durumumda, şöyle görünüyor:

Önce

cd debian/build && dh_auto_configure ${CONFIGURE_ARGS}          \
        --with-ca-path=/etc/ssl/certs
cd debian/build-gnutls &&  dh_auto_configure ${CONFIGURE_ARGS}  \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-gnutls
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS}      \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-nss

Sonra

cd debian/build && dh_auto_configure ${CONFIGURE_ARGS}          \
        --with-ca-path=/etc/ssl/certs --with-libssh2
cd debian/build-gnutls &&  dh_auto_configure ${CONFIGURE_ARGS}  \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-gnutls --with-libssh2
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS}      \
        --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
        --without-ssl --with-nss --with-libssh2

Şimdi paketleri oluşturun:

cd ..
sudo dpkg-buildpackage
cd ..

sudo dpkg -i curl_*.deb
sudo dpkg -i libcurl3_*.deb
sudo dpkg -i libcurl3-gnutls_*.deb

İşte sorununuz için iyi bir öğretici .

Frantique'nin cevabı hakkında daha fazla bilgi.


5

Frantique'nin yanıtı benim için çalıştı - ancak sistemimi yükseltmeye çalıştığımda, paket yöneticim yüklemeyi sftp / scp içermeyen bir curl'e geri döndürmek istedi.

Her yükseltmeden sonra kıvrımı sftp / scp ile yeniden yüklemek zorunda kalmamak için:

sudo aptitude hold libcurl3
sudo aptitude hold libcurl3-gnutls

Apt kullanıyorsanız apt-mark kullanın.

Belirli bir paketin güncellenmesini önleme hakkında daha fazla bilgi edinmek istiyorsanız bu sayfayı okuyun .

Sonunda, ileride yapılacak bazı yükseltmelerin siz bekletmeyi kaldırana kadar ileri gidemeyebileceğini unutmayın.

Şans eseri PHP kullanıyorsanız ve curl'de sftp'ye ihtiyacınız varsa - kurulumu ve bakımı çok daha kolay olabilecek phpseclib'i kontrol etmelisiniz .


'Kıvrılma' da mı yapılmalı yoksa bu gerekli değil mi?
David Oliver

1

Ubuntu 18.04 için libssl desteği ile kıvrım nasıl oluşturulacağı aşağıda açıklanmıştır. LTS:

sudo apt-get install build-essential debhelper libssh-dev
sudo apt-get source curl
sudo apt-get build-dep curl

cd curl-*

Düzeltme Eki'ni indirin ve düzeltme eki ekleyin debian/rules:

wget https://bugs.launchpad.net/ubuntu/+source/curl/+bug/311029/+attachment/5234644/+files/ubuntu_libssl.patch
sudo patch debian/rules < /ubuntu_libssl.patch
  • Veya dosyadaki alternativ yerine debian/rules:

    CONFIGURE_ARGS += --without-libssh2` 
    

    ile

    CONFIGURE_ARGS += --with-libssh2
    

Ardından paketleri oluşturun ve yükleyin:

sudo dpkg-buildpackage -uc -us -b
# -us Do not sign the source package.
# -uc Do not sign the .changes file.
# -b Do not try to apply changes to the unpacked upstream

cd ..

sudo dpkg -i curl_*.deb
sudo dpkg -i libcurl3-*.deb
sudo dpkg -i libcurl3-gnutls_*.deb

sudo apt-mark hold curl
sudo apt-mark hold libcurl3
sudo apt-mark hold libcurl3-gnutls
# sudo apt-mark unhold <package-name>

Umarım birine yardım eder.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.