AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1128780
Accepted
k0pernikus
k0pernikus
Asked: 2019-03-27 01:46:33 +0800 CST2019-03-27 01:46:33 +0800 CST 2019-03-27 01:46:33 +0800 CST

Como construir o curl mais recente a partir de fontes para permitir o download de arquivos via sftp?

  • 772

Eu preciso baixar arquivos de um servidor sftp. Infelizmente, a versão curl no Ubuntu

7.58.0-2ubuntu3.6 amd64

não suporta sftp.

Eu recebo a mensagem de erro

Protocol "sftp" not supported or disabled in libcurl

ao tentar baixar um arquivo. Portanto, quero construir a curlpartir da fonte para permitir o sftp. Como faço para conseguir isso?

compiling sftp make 18.04 curl
  • 1 1 respostas
  • 7553 Views

1 respostas

  • Voted
  1. Best Answer
    k0pernikus
    2019-03-27T01:46:33+08:002019-03-27T01:46:33+08:00

    Nota: A instalação de software de uma fonte de terceiros é um risco de segurança. Certifique-se de confiar nas fontes antes de seguir estas etapas.


    Primeiro, você precisará do libssh instalado.

    Você precisará de um tarball, por exemplo

    https://www.libssh2.org/download/libssh2-1.8.2.tar.gz
    

    Extraia e instale-o via:

    cd libssh2-1.8.1
    ./configure
    make
    sudo make install
    

    Em segundo lugar, certifique-se de desinstalar o curl existente:

    sudo apt purge curl
    

    Li que também é recomendado desinstalar as curl libs, por exemplo libcurl3-gnutls, MAS percebi que tem muitas dependências que não queria perder, então mantive. Portanto, tenha cuidado com o processo de desinstalação.

    E terceiro, para compilar curla partir do sources , clone o projeto curl:

    $ git clone https://github.com/curl/curl.git
    

    Eu o compilei com commit hash b8f760319668548d93ab0c023633293514d8137, por favor, tenha isso em mente se você tiver problemas com o arquivo master.

    Esse repositório contém um GIT-INFOarquivo com informações úteis sobre como construí-lo e pode ser útil dar uma olhada nele, pois o processo pode mudar no futuro.

    O que funcionou para mim foi construí-lo via:

    ./buildconf
    ./configure
    ./configure --disable-libcurl-option --disable-shared --with-libssh2=/usr/local 
    make
    sudo make install
    

    ( curlsuporta a desinstalação via sudo make uninstall. Útil se você tiver problemas ou o que experimentar em diferentes sinalizadores.)

    Não usei bibliotecas compartilhadas porque notei que o curl estava tendo problemas para encontrar certos comandos do próprio curl e falhava ao tentar executá-lo, por exemplo, vi erros como:

    curl: symbol lookup error: curl: undefined symbol: curl_url_cleanup
    curl: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
    

    No entanto, com a abordagem mencionada acima, agora tenho um curl compatível com sftp, pois o sftp aparece nos protocolos suportados:

    $ curl -V
    curl 7.64.1-DEV (x86_64-pc-linux-gnu) libcurl/7.64.1-DEV OpenSSL/1.1.0g zlib/1.2.11 libssh2/1.8.1
    Release-Date: [unreleased]
    Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 
    Features: AsynchDNS HTTPS-proxy IPv6 Largefile libz NTLM NTLM_WB SSL TLS-SRP UnixSockets
    

    e posso confirmar que ele baixa arquivos de servidores sftp.


    Fontes: descobri as etapas necessárias por meio de:

    • https://curl.haxx.se/docs/install.html
    • http://andrewberls.com/blog/post/adding-sftp-support-to-curl
    • http://d.hatena.ne.jp/shammer/20161110/p1
    • 6

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve