質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

1回答

1132閲覧

ライブラリを実行ファイルに内包したい。

katosei

総合スコア32

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

0クリップ

投稿2019/02/25 15:02

目的

curlコマンドをmakeしたい。
利用したいサーバにはライブラリが無い。

環境

linux(CentOS7)
利用したいサーバでは勝手にrpm等を入れることは出来ず。

やった事

サーバAでcurlコマンドをmakeし、別のサーバBにコピーするも動かず。

質問

上記を出来るようにする簡単な方法はありますか?
l
ライブラリだけコピーしてLD_LIBRARY_PATHを変更して・・・みたいのは最後の手段にしたいです。
実行ファイルに内包、もしくは個人ユーザ領域にライブラリを置いて、静的に指定とかか理想的です。

簡単な方法があれば教えて下さい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2019/02/25 16:13

> サーバAでcurlコマンドをmakeし、別のサーバBにコピーするも動かず。 とは、どういうふうになるんでしょうか。 エラーが出るならエラーメッセージをそのまま提示してください
katosei

2019/02/25 19:43

``` $ ./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ではなく、コンパイルレベルで解決できないか、という質問になります。
wwbQzhMkhhgEmhU

2019/02/25 21:53

ソースパッケージを取ってきてstaticビルドになるようにチマチマ設定してビルドするとできると思います。 ただ、そんなことを質問している時点で、あなたには難しいのではないかと思います。
Stan_Dma

2019/02/26 03:06 編集

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.
guest

回答1

0

自己解決

コンパイルレベルでの解決は難しそうなので、ラッパーを作って
ラッパー内で環境変数を設定してライブラリを読み込ませる形で解決させました。

投稿2019/03/01 12:25

katosei

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問