Как создать последнее завихрение из источников, чтобы позволить загружать файлы через sftp?

Я должен загрузить файлы с sftp сервера. К сожалению, вихревая версия в Ubuntu

7.58.0-2ubuntu3.6 amd64

не поддерживает sftp.

Я получаю сообщение об ошибке

Protocol "sftp" not supported or disabled in libcurl

при попытке загрузить файл. Я поэтому хочу создать curl из источника для разрешения sftp. Как я достигаю этого?

5
задан 26 March 2019 в 03:16

1 ответ

Примечание: Программное обеспечение Installing из независимого источника является риском для безопасности. Удостоверьтесь, что Вы доверяете источникам прежде, чем выполнить эти шаги.


Во-первых, Вам будет нужен установленный libssh.

Вам будет нужен tarball, например.

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

Экс-такт и установка это через:

cd libssh2-1.8.1
./configure
make
sudo make install

Во-вторых, удостоверьтесь, что удалили свое существующее завихрение:

sudo apt purge curl

Я считал, что также рекомендуется удалить завихрение, освобождает, например. libcurl3-gnutls, НО я заметил, что это имеет много зависимостей, которые я не хотел терять, таким образом, я сохранил его. Так будьте осторожны относительно процесса удаления.

И в-третьих, для создания curl из источников клонируйте вихревой проект:

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

Тот репозиторий содержит a GIT-INFO файл с полезной информацией о том, как создать его и может быть полезно взглянуть в него, поскольку процесс может измениться в будущем.

То, что работало на меня, должно было создать его через:

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

(curl удаление поддержек через sudo make uninstall. Полезный, если Вы имеющий проблемы или что испытать различные флаги.)

Я не пользовался совместно использованными библиотеками, поскольку я заметил, что завихрение имело проблемы при нахождении определенных вихревых собственных команд и отказавший при попытке выполнить его, например, Я видел ошибки как:

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

Все же с вышеупомянутым подходом у меня есть теперь рабочее завихрение, поддерживающее sftp, так как sftp обнаруживается в рамках поддерживаемых протоколов:

$ 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

и я могу подтвердить, что это загружает файл с sftp серверов.


Источники: Я нашел о необходимых шагах через:

4
ответ дан 23 November 2019 в 09:30

Другие вопросы по тегам:

Похожие вопросы: