目的
curlコマンドをmakeしたい。
利用したいサーバにはライブラリが無い。
環境
linux(CentOS7)
利用したいサーバでは勝手にrpm等を入れることは出来ず。
やった事
サーバAでcurlコマンドをmakeし、別のサーバBにコピーするも動かず。
質問
上記を出来るようにする簡単な方法はありますか?
l
ライブラリだけコピーしてLD_LIBRARY_PATHを変更して・・・みたいのは最後の手段にしたいです。
実行ファイルに内包、もしくは個人ユーザ領域にライブラリを置いて、静的に指定とかか理想的です。
簡単な方法があれば教えて下さい。
> サーバAでcurlコマンドをmakeし、別のサーバBにコピーするも動かず。
とは、どういうふうになるんでしょうか。
エラーが出るならエラーメッセージをそのまま提示してください
```
$ ./curl yahoo.co.jp
./curl: error while loading shared libraries: libnghttp2.so.14: cannot open shared object file: No such file or directory
$ ldd ./curl | grep not
libnghttp2.so.14 => not found
```
ライブラリが無いと出ます。
もちろんライブラリは、makeしたサーバAにはあり、利用するサーバBにはありません。
またlibnghttp2.so.14をサーバBにコピーし、LD_LIBRARY_PATHで指定すれば動くのは確認しました。
このライブラリを実行ファイルに含ませられれば最高、
もしくは実行ファイルで指定できるなら、セットで配置すればいいのでベターと考えています。
相対パスならなおベター、絶対パスが妥協点、という感じ。
前提として`サーバBの環境は変更しない`というのを条件にしているので
サーバBにrootでライブラリを追加したり、ldconfigの設定を弄るのはできません。
一般ユーザで出来る範囲でやりたいです。
LD_LIBRARY_PATHではなく、コンパイルレベルで解決できないか、という質問になります。
ソースパッケージを取ってきてstaticビルドになるようにチマチマ設定してビルドするとできると思います。
ただ、そんなことを質問している時点で、あなたには難しいのではないかと思います。
First of all, the cURL package have some dependency packages. So, it takes time and effort to build. It is easy to build the wget package because of quite few dependencies they have.
回答1件
あなたの回答
tips
プレビュー