ローカルに構築されたGitインストールをリモートリポジトリに接続することはできません。リモートhttpsがありません。

ローカルに構築されたGitインストールをリモートリポジトリに接続することはできません。リモートhttpsがありません。

以前のGentoo LinuxボックスでGitを操作しようとしていますが、root / 昇格された権限がありません。 ~ / binフォルダにGitをローカルにビルドしてインストールできる必要があると思いましたが、それは可能で動作しますが、リモートHTTPSリポジトリに接続できません(必須であり、他のリポジトリは使用できません)。 Gitリモートプロトコル)。

これまでのビルドプロセスは、オンラインで見つけることができるさまざまなガイドやヒントを通じて文書化されています。 PATHの先頭に〜/ binを追加してください。

CURL 8.4.0のダウンロードとビルド - GitへのHTTPアクセスの一部としてCURLが必要で、最初にcurl/curl.hが見つからない場合、Gitのビルドは完了しないと仮定します。

cd ~/src/curl-8.4.0
./configure --prefix=$HOME --with-openssl
make
make install

Curl は現在 ~/bin にあり、動作しています。 HTTPSソースからデータをインポートできます。

もっと読むと、Expatが必要だという事実が明らかになりました。そのため、対応するソースコードもインポートし、次のものを構築しました。

cd ~/src/expat-2.5.0
./configure --prefix=$HOME
make
make install

最後はGit 2.42.1バージョンです。

cd ~/src/git-2.42.1
make clean
make configure
./configure -prefix=$HOME -with-curl=~/bin CFLAGS="$CFLAGS -std=gnu99" --with-expat=~/bin
make
make install

これで、Gitがインストールされていて、新しく作成されたローカルストレージをサーバーにプッシュしようとする場合を除いて、ほとんどの場合〜/ binで動作します。

$ git push -u origin master
git: 'remote-https' is not a git command. See 'git --help'.

だからリモートhttpsがありません。しかし、なぜこれが欠けているのかわかりません。ビルド中に見つからなかったアイテムのエラーを表示するのではなく、どこかで自動的に失敗すると仮定しますか?

修正する この問題をさらに解決した結果、設定スクリプトの出力でCurlがGitビルドに含まれていないとマークされていることがわかりました。 checking for curl_global_init in -lcurl... no

それからもっと深く掘り下げて構成ログGitの設定スクリプトで生成されたファイル。 Curlライブラリのテストに失敗したようです。

configure:5237: checking for curl_global_init in -lcurl
configure:5262: gcc -o conftest  -std=gnu99 -I~/include  -L~/lib  conftest.c -lcurl   >&5
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lcurl
collect2: ld returned 1 exit status
configure:5262: $? = 1

この部分についてはまだよくわかりません。 ~/include には Curl ビルド用のヘッダーを含む Curl ディレクトリがあり、 ~/lib には libcurl ライブラリ libcurl.so と libcurl.so4 があります。それでは、Git設定スクリプトでこれらのライブラリを表示または使用できないのはなぜですか?おそらく正しく構築されていない可能性がありますか?

ベストアンサー1

問題は、Gitの設定スクリプトが以前のローカルインストール場所ではなく、デフォルトのシステム場所でのみCurlライブラリとヘッダーを見つけようとすることです。コンパイラおよびライブラリフラグオプションを使用してこれらの場所を手動で追加することは修正です。 (CPPFLAGS="$CPPFLAGS -I/home/username/include" LDFLAGS="$LDFLAGS -L/home/username/lib"奇妙なことに、これらのオプションパスに〜省略形を使用することは無視されます。)

Git設定スクリプトに渡すことができるオプションの詳細については、を実行して見つけることができます./configure --help。ここで上記のフラグとオプションを見つけることができます。

更新された最終タスクGitのビルド手順は次のとおりです。

cd ~/src/git-2.42.1
make clean
make configure
./configure -prefix=$HOME --with-curl=$HOME CFLAGS="$CFLAGS -std=gnu99" CPPFLAGS="$CPPFLAGS -I/home/username/include" LDFLAGS="$LDFLAGS -L/home/username/lib"
make
make install

しかし、ジレンマが残っています。この追加手順でヘッダーファイルとライブラリの場所を転送する必要がある場合、その--with-curl=$HOMEオプションは何をしていますか?

おすすめ記事