it-swarm-ja.com

sudoなしでサーバーにgitをインストールする

ルートアクセス権を持たないユーザーがいるサーバーにgitをインストールしようとしています。 ./configureの使用を提案するチュートリアルをたくさん見てきましたが、githubから最新のgit Zipをダウンロードしたとき、そのようなファイルはありませんでした。どうやらそれはmakemake installで動作するはずですが、makeを実行すると、エラーが発生します。

In file included from credential-store.c:1:
cache.h:21: error: expected specifier-qualifier-list before 'z_stream'
make: *** [credential-store.o] Error 1

どうやらこれはzlibがインストールされていないことに関係しています。 zlibをダウンロードできますが、gitにインストールした場所を知る方法がわかりません。他の依存関係もあるかもしれませんが、私はおそらくそれらを同様の方法で処理できます。

また、git実行可能ファイルだけを/home/user/binに置き、他のフォルダやがらくたを入れたくありません。コンパイルされた実行可能ファイルをダウンロードする方法はありますか?それも大丈夫だからです。

1
Explosion Pills

現在、非常に詳細な回答を提供する時間はありませんが、ホームディレクトリの下にあるビルド済みのgitパッケージから実行可能ファイルを実行するための可能な戦略の概要を説明できます。この応答はDebianを対象としています。これは、あなたが使用していると言っているためですが、基本的な概念は他のOSやディストリビューションにも適用できます。

まず、 http://packages.debian.org/squeeze/git に移動し、gitパッケージの依存関係を確認します。幸いなことに、gitにはそれほど多くはありません。 libcurl3-gnutlslibexpat1を除いて、重要なもののほとんどはおそらくすでにインストールされています。

次に、バイナリの.debパッケージをダウンロードし、その内容を抽出します(.debパッケージを手動で抽出する方法については、Webを検索してください)。 data.tar.gzファイルがあります。それを抽出すると、usr/bin/git*ファイルとusr/lib/git-core/*ファイルが得られます。これらのファイルは、ホームディレクトリの下のどこかに置くことができます。ここで重要な部分:/usr/bin/git/usr/lib/git-coreの下にある多数の「ヘルパー」プログラムを呼び出し、この後者のパスは/usr/bin/gitにハードコードされています。幸い、GIT_EXEC_PATH環境変数を設定することでハードコードされた値をオーバーライドできるため、さまざまな/usr/lib/git-coreファイルを保持することにした場所を指すようにドットファイルを更新します。

最後に、すべてのライブラリの依存関係(およびそれらの依存関係など)がシステムにインストールされていない可能性があります(例:libcurl3-gnutlslibexpat1)。これらのバイナリパッケージもダウンロードして、ホームディレクトリから抽出し、LD_LIBRARY_PATH環境変数を適切に設定してgitがそれらを見つけられるようにすることができます。

P.S.私はおそらくあなたの立場にいるという私の公平なシェア以上のものを持っていたので、上で概説したことは理論的以上のものです。しかし、この種の問題を回避することは少しブラックアートであるため、通常はさらに面倒な作業が必要になります。幸運を。

1
jjlin

あなたはあなたの前にたくさんの仕事があります。適切なパッケージがインストールされていない場合、必要なtarballを取得するには、どちらか一方が必要になるため、wgetまたはcurlのいずれかが使用可能であることを確認する必要があります。

作成する

/home/youruser/srcディレクトリ(mkdir -p /home/youruser/src)。

srcディレクトリにcdして、ソースコードをgitに取得します

wget http://git-core.googlecode.com/files/git-1.7.11.2.tar.gz

それを解き放ち、

./configure --help

これにより、expat、opensslなど、必要なすべてのパッケージが表示されます。これらすべてをダウンロードし、ビルドして/home/youruserにインストールする必要があります。完了すると/home/youruser/binになります。いくつかの必要ディレクトリと一緒に。

タールを塗っていないディレクトリにあるINSTALLファイルを読んで、進捗状況を投稿してください。

0
thisfeller