1

PHP 7.3 を搭載した Debian 9 サーバーで Webmin/Virtualmin を使用しています。

私の使用している cURL のバージョンは 7.52.1 ですが、これは古いため、cURL を更新したいと考えています。でもできないんです...

sudo を正常にインストールしました (コマンドは Debian 9 にはありませんでした)。

wget https://curl.haxx.se/download/curl-7.67.0.tar.gz
tar -xvf curl-7.67.0.tar.gz
cd curl-7.67.0
./configure
make
sudo service apache2 restart

しかし、その後も目立つのは古いバージョンの cURL です。

だから私は試しました:

wget https://packages.sury.org/php/pool/main/p/php-defaults/php-curl_7.3%2B70%2B0~20190814.17%2Bdebian9~1.gbp1e7da2_all.deb
sudo apt install ./php-curl_7.3+70+0~20190814.17+debian9~1.gbp1e7da2_all.deb
sudo service apache2 restart

「0 更新、 1 新規インストール、0 削除、45 未更新」と読めるので、何かが落ち着いたようです。

繰り返しますが、これは出てくる古いバージョンです...

私も使用できることがわかりました:

sudo gdebi php-curl_7.3+70+0~20190814.17+debian9~1.gbp1e7da2_all.deb

しかし、gdebi コマンドをインストールできません。これらのコマンドのいずれかを試すと、次のようになります。

sudo apt-get install gdebi
apt-get install gdebi
sudo apt install gdebi

次のフレーズの後にコマンド プロンプトがクラッシュします。

この操作の後、152 MB の追加のディスク容量が使用されます。

次のコマンドのいずれかを使用して、自分のバージョンの Curl を制御できないことを指定します (これが問題の手がかりかもしれません)。

curl -v 
curl --version

この場合、次のエラー メッセージが表示されます。

curl: シンボル検索エラー: curl: 未定義のシンボル: curl_mime_free

一方、次を含むphpファイルをアップロードすると:

<?php
echo '<pre>';
var_dump(curl_version());
echo '</pre>';
?>

そこでcurlバージョンを読むことができます:

["バージョン"]=> 文字列(6) "7.52.1"

ご助力ありがとうございます !

テスト後に編集:

@Labradorcode make と make install でエラーはありません。

複数のcurlインスタンスがインストールされているという問題について、あなたの考えを思い出してください。以下のログを見ると、/usr/bin/ ではなく /usr/local/bin/ にインストールされているようです (/usr/bin/curl -Vバージョンを/usr/local/bin/curl -V示してエラーが発生したとしても...)。

strong でいくつかの例を見つけることができます:

./configure結果(先頭を切り捨てました):

(...) configure: curl/libcurl をビルドするように構成されています:

ホストのセットアップ: x86_64-pc-linux-gnu インストール プレフィックス: /usr/local コンパイラ: gcc CFLAGS:
-Werror-implicit-function-declaration -O2 -Wno-system-headers -pthread CPPFLAGS: LDFLAGS: LIBS:

curl バージョン: 7.67.0 SSL: いいえ
(--with-{ssl,gnutls,nss,mbedtls,wolfssl,schannel,secure-transport,mesalink,amissl}) SSH: いいえ (--with-libssh2) zlib: いいえ ( --with-zlib) brotli: いいえ (--with-brotli) GSS-API:
いいえ (--with-gssapi) TLS-SRP: いいえ (--enable-tls-srp) リゾルバ: POSIX スレッド IPv6: 有効な Unixソケット: 有効 IDN: いいえ
(--with-{libidn2,winidn}) libcurl のビルド: Shared=yes、Static=yes
組み込みマニュアル: 有効 --libcurl オプション: 有効 (--disable-libcurl-option) 詳細エラー: 有効 (--disable-verbose) コード カバレッジ: 無効 SSPI:
いいえ (--enable-sspi) ca cert bundle: いいえ ca cert path:
ca フォールバック: LDAP: いいえ (--enable-ldap / --with-ldap-lib / --with-lber-lib) LDAPS: いいえ (--enable-ldaps) RTSP: 有効 RTMP: いいえ
(--with- librtmp) Metalink: いいえ (--with-libmetalink)
PSL: いいえ (libpsl が見つからない) Alt-svc: いいえ
(--enable-alt-svc) HTTP2: 無効 (--with-nghttp2)
HTTP3: 無効 (-- with-ngtcp2, --with-quiche) ESNI:
いいえ (--enable-esni) プロトコル: DICT FILE FTP GOPHER HTTP IMAP POP3 RTSP SMTP TELNET TFTP 機能: IPv6 UnixSockets AsynchDNS

make結果 :

make[1] : on entre dans le repertoire « /curl-7.67.0/lib » make all-am make[2] : on entre dans le repertoire « /curl-7.67.0/lib » make[ 2] : on quitte le repertoire « /curl-7.67.0/lib » make[1] : on quitte le repertoire « /curl-7.67.0/lib » make[1] : on entre dans le repertoire « /curl-7.67.0/src » Make all in ../docs make[2] : on entre dans le répertoire « /curl-7.67.0/docs » Making all in ../docs make[3] : entre dans le repertoire « /curl-7.67.0/docs » make[3]: rien à faire pour « all-am ». make[3] : レパートリーを終了する « /curl-7.67.0/docs » make all in cmdline-opts make[3] : レパートリーを終了する « /curl-7.67.0/docs/cmdline-opts » make [3]: rien à faire pour « all ». make[3] : レパートリーを終了 « /curl-7.67.0/docs/cmdline-opts » make[2] : 完全なレパートリー « /curl-7.67.0/docs » make[2] : 前のレパートリー « /curl-7.67.0/src » make[2]: rien à faire pour « all-am ». make[2] : レパートリーの終了 « /curl-7.67.0/src » make[1] : レパートリーの終了 « /curl-7.67.0/src » make[1] : レパートリーの開始 « / curl-7.67.0 » make[1]: rien à faire pour « all-am ». make[1] : onquitte le repertoire « /curl-7.67.0 »

make install結果 :

make install in lib make[1] : on entre dans le repertoire « /curl-7.67.0/lib » make[2] : on entre dans le repertoire « /curl-7.67.0/lib » /bin/mkdir -p ' /usr/local/lib ' /bin/sh ../libtool --mode=install /usr/bin/install -c libcurl.la ' /usr/local/lib ' libtool: install: /usr/bin/install -c .libs/libcurl.so.4.6.0 /usr/local/lib/libcurl.so.4.6.0 libtool: インストール: (cd /usr/local/lib && { ln -s -f libcurl.so.4.6 .0 libcurl.so.4 || { rm -f libcurl.so.4 && ln -s libcurl.so.4.6.0 libcurl.so.4; }; }) libtool: インストール: (cd /usr/local/ライブラリ&& { ln -s -f libcurl.so.4.6.0 libcurl.so || { rm -f libcurl.so && ln -s libcurl.so.4.6.0 libcurl.so; }; }) libtool: インストール: /usr/bin/install -c .libs/libcurl.lai /usr/local/lib/libcurl.la libtool: インストール: /usr/bin/install -c .libs/libcurl.a /usr /local/lib/libcurl.a libtool: インストール: chmod 644 /usr/local/lib/libcurl.a libtool: インストール: ranlib /usr/local/lib/libcurl.a libtool: 終了: PATH="/usr/local /sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/sbin" ldconfig -n /usr/local/lib ------------ -------------------------------------------------- -------- ライブラリは次の場所にインストールされています: /usr/local/lib

あるディレクトリ LIBDIR にインストールされているライブラリをリンクしたい場合は、libtool を使用してライブラリのフル パス名を指定するか、リンク中に「-LLIBDIR」フラグを使用して少なくとも 1 つの操作を行う必要があります。 - 実行中に 'LD_LIBRARY_PATH' 環境変数に LIBDIR を追加します - リンク中に 'LD_RUN_PATH' 環境変数に LIBDIR を追加します - '-Wl,-rpath -Wl,LIBDIR' リンカー フラグを使用します - システム管理者に LIBDIR を「/etc/ld.so.conf」

詳細については、ld(1) や ld.so(8) のマニュアル ページなど、共有ライブラリに関するオペレーティング システムのドキュメントを参照してください。-------------------------------------------------- -------------------- make[2]: rien à faire pour « install-data-am ». make[2] : レパートリーを終了 « /curl-7.67.0/lib » make[1] : レパートリーを終了 « /curl-7.67.0/lib » で src にインストールを作成 make[1] : アントレダンでle repertoire « /curl-7.67.0/src » make install in ../docs make[2] : on entre dans le repertoire « /curl-7.67.0/docs » make install in ../docs make[3] : 前編 « /curl-7.67.0/docs » make[4] : 前編 « /curl-7.67.0/docs » make[4]: 前編 « install-exec-am ». /bin/mkdir -p '/usr/local/share/man/man1' /usr/bin/install -c -m 644 curl-config.1 /curl-7.67.0/docs/curl.1 ' /usr/local/share/man/man1' make[4] : レパートリーを終了 « /curl-7.67.0/docs » make[3] : レパートリーを終了 « /curl-7.67.0/docs » install in cmdline-opts make[3] : on entre dans le répertoire « /curl-7.67.0/docs/cmdline-opts » make[4] : on entre dans le repertoire « /curl-7.67.0/docs/cmdline -opts » make[4]: « install-exec-am » を実行します。make[4]: rien à faire pour « install-data-am ». make[4] : レパートリーを終了 « /curl-7.67.0/docs/cmdline-opts » make[3] : レパートリーを終了 « /curl-7.67.0/docs/cmdline-opts » make[2] : on quitte le repertoire « /curl-7.67.0/docs » make[2] : on entre dans le repertoire « /curl-7.67.0/src » make[3] : on entre dans le repertoire « /curl-7.67 .0/src » /bin/mkdir -p '/usr/local/bin' /bin/sh .. /libtool --mode=install /usr/bin/install -c curl '/usr/local/bin' libtool: インストール: /usr/bin/install -c .libs/curl /usr/local/bin/curl make[ 3]: rien à faire pour « install-data-am ». make[3] : 終了レパートリー « /curl-7.67.0/src » make[2] : 終了レパートリー « /curl-7.67.0/src » make[1] : 終了レパートリー « /curl -7.67.0/src » make[1] : 前編 « /curl-7.67.0 » make[2] : 前編 « /curl-7.67.0 » /bin/mkdir -p ' /usr/local/bin' /usr/bin/install -c curl-config '/usr/local/bin' /bin/mkdir -p '/usr/local/lib/pkgconfig' /usr/bin/install -c -m 644 libcurl.pc '/usr/local/lib/pkgconfig' make install-data-hook make[3] : on entre dans le repertoire « /curl-7.67.0 » cd include && make install make[4] : on entre dans le répertoire « /curl-7.67.0/include » make install in curl make[5] : on entre dans le repertoire « /curl-7.67.0/include/curl » make[6] : on entre dans leレパートリー « /curl-7.67.0/include/curl » make[6]: rien à faire pour « install-exec-am ». /bin/mkdir -p '/usr/local/include/curl' /usr/bin/install -c -m 644 curl.h curlver.h easy.h mprintf.h stdcheaders.h multi.h typecheck-gcc.h system.h urlapi.h '/usr/local/include/curl' make[6] : レパートリーを終了 « /curl-7.67.0/include/curl » make[5] : レパートリーを終了 « /curl- 7.67.0/include/curl » make[5] : 前編 « /curl-7.67.0/include » make[6] : 前編 « /curl-7.67.0/include » make[ 6]: rien à faire pour « install-exec-am ». make[6]: rien à faire pour « install-data-am ». メイク[6] : make[5] : 完全なレパートリー « /curl-7.67.0/include » make[4] : 完全なレパートリー « /curl-7.67.0/ include » cd docs && make install make[4] : on entre dans le répertoire « /curl-7.67.0/docs » Making install in . make[5] : 前編 « /curl-7.67.0/docs » make[6] : 前編 « /curl-7.67.0/docs » make[6]: 前編 « install-exec-am ». /bin/mkdir -p '/usr/local/share/man/man1' /usr/bin/install -c -m 644 curl-config.1 /curl-7.67.0/docs/curl.1 '/usr/ local/share/man/man1' make[6] : レパートリーを終了 « /curl-7.67.0/docs » make[5] : レパートリーを終了 « /curl-7.67.0/docs » コマンドラインでインストールを作成-opts make[5] : 前編 « /curl-7.67.0/docs/cmdline-opts » make[6] : 前編 « /curl-7.67.0/docs/cmdline-opts » make[6]: rien à faire pour « install-exec-am ». make[6]: rien à faire pour « install-data-am ». make[6] : レパートリーを終了 « /curl-7.67.0/docs/cmdline-opts » make[5] : レパートリーを終了 « /curl-7.67.0/docs/cmdline-opts » make[4] : on quitte le repertoire « /curl-7.67.0/docs » cd docs/libcurl && make install make[4] : on entre dans le repertoire « /curl-7.67.0/docs/libcurl » make install in opts make[ 5] : 前編 « /curl-7.67.0/docs/libcurl/opts » make[6] : 前編 « /curl-7.67.0/docs/libcurl/opts » make[6] : rien à faire pour « install-exec-am ». /bin/mkdir -p '/usr/local/share/man/man3' /usr/bin/install -c -m 644 CURLINFO_ACTIVESOCKET.3 CURLINFO_APPCONNECT_TIME. 終了レパートリー « /curl-7.67.0/docs/libcurl/opts » make[5] : 終了レパートリー « /curl-7.67.0/docs/libcurl/opts » make[5] : 開始レパートリーレパートリー « /curl-7.67.0/docs/libcurl » make[6] : アントレ ダン ル レパートリー « /curl-7.67.0/docs/libcurl » make[6]: 準備完了 « install-exec-am ». /bin/mkdir -p '/usr/local/share/aclocal' /usr/bin/install -c -m 644 libcurl.m4 '/usr/local/share/aclocal' /bin/mkdir -p '/usr/ local/share/man/man3' /usr/bin/install -c -m 644 curl_easy_cleanup.3 curl_easy_duphandle.3 curl_easy_escape.3 curl_easy_getinfo.3 curl_easy_init.3 curl_easy_pause.3 curl_easy_perform.3 curl_easy_recv.3 curl_easy_reset.3 curl_easy_send.3 curl_easy_setopt .3 curl_easy_strerror.3 curl_easy_unescape.3 curl_easy_upkeep.3 curl_escape.3 curl_formadd.3 curl_formfree.

改行に失敗してすみません。

4

1 に答える 1

0

こんにちは 返信ありがとうございます。前回の返信が簡潔で申し訳ありません。

dpkg を使用できるのに gdebi を使用する理由


1 シチュエーション

DPKG の使用

dpkg -i [name] .deb

2 シチュエーション

完全にアンインストールしようとしましたか?

apt remove --purge curl

および/または

apt remove --purge curl *

依存関係をアンインストールするときの注意。重要な VirtualMin モジュールがこのコマンドでアンインストールされている場合。. この場合、CURL 以外の何かとその一部です。続行しないでください。彼がパッケージのアンインストールを受け入れるかどうかを尋ねたとき。

この場合... ターミナルで生成されたリストを利用して、アンインストール、手動の重要な名前を収集します。コマンドの [ ] は極端な場合にのみ使用します。また、Virtualmin のインストールを危険にさらさないという確信がある場合にのみ使用する必要があります。私の意見では、それはあなたの場合です。しかし、それなしで試してみてください.*

クリーンアップは、メイン リポジトリ [curl] に関連付けられているすべての依存関係と設定を削除することです。競合を引き起こしているのは、これらの依存関係/設定である可能性があります。


3 シチュエーション

ケーススタディ: - THE EXTREME

ええと、私の場合、特に、次のような状況を行います。

VPSを利用している場合。データのバックアップを作成し、最も重要なものを忘れないでください。主にデータベース。Snaphost 経由でアクセスする必要がある場合は、このディスクを保留にしておくことをお勧めします。

その後、新しい VPS マシンを作成し、何よりも先に CURL をインストールします。システムがすぐにエラーを報告する場合 ... これが Debian である可能性があることは既にご存じでしょう。Ubuntu などの別の Linux オペレーティング システムをテストしてみてください。一般的にエラーは少なくなります。Debian の場合、特定のインストールにいくつかの複雑さがあり、プロセスが退屈で非常に疲れます。それはあなたの場合だと思うので、これは非常に簡単かもしれません。

別の方法として、Google コンソール アカウントを使用してテストすることもできます。

Centos 7 の使用はお勧めしません。中期的には通常、迷惑なバグが発生するからです。

于 2020-01-27T18:26:44.613 に答える