CentOS 7.4に利用可能な最新のgit(git-2.17.1)をインストールしたいと思います。一部のアプリケーションがこれについて不平を言うからです。
インストールしようとしています。子-2.17.1ソースから開始セントOS 7.4。
私が試した方法は次のとおりです。
- 古いgitを削除するには、次のコマンドを使用します(専用):
ㅏ)rpm -e --nodeps git
git-2.17.1.zip
ファイルをダウンロードして解凍します。/home/myusername/temp/
この場合、ファイルを抽出したディレクトリに変更します。
/home/myusername/temp/git-2.17.1/
スーパーユーザーとして、次のコマンドを使用して可能なすべての依存関係をインストールしました。
a)yum install docbook2X-0.8.8-17.el7.x86_64.rpm
(このパッケージをダウンロードした後)
雨)yum install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel asciidoc xmlto gengetopt autoconf libcurl-devel gcc kernel-headers debhelper intltool perl-Git po-debconf
- 以下を使用して、git-scm Webサイトの指示に従ってシンボリックリンクを作成しました。
ㅏ) ln -s /usr/bin/db2x_docbook2texi /usr/bin/docbook2x-texi
一般ユーザーとして次のコマンドを実行します。
./configure CFLAGS='-I/usr/local/openssl/include' LDFLAGS='-L/usr/local/openssl/lib' --prefix=/usr/local/git --with-openssl=/usr/local/bin/openssl
make all doc info
今回もスーパーユーザーとして次のコマンドを実行します。
make install install-doc install-html install-info
最後のステップに問題があります。出力は次のとおりです。
install -m 644 git.info gitman.info /usr/local/git/share/info
if test -r /usr/local/git/share/info/dir; then \
install-info --info-dir=/usr/local/git/share/info git.info ;\
install-info --info-dir=/usr/local/git/share/info gitman.info ;\
else \
echo "No directory found in /usr/local/git/share/info" >&2 ; \
fi
No directory found in /usr/local/git/share/info
mak
e[1]: Leaving directory `/home/myusername/temp/git-2.17.1/Documentation'
opensslバージョンを現在利用可能な最新バージョン(openssl 1.1.0h)に正常にアップグレードしました。
答え1
これはエラーではなく、echo $?
実行後に確認できますmake install-info
。目標は次のとおりinstall-info
ですDocumentation/Makefile
。
install-info: info
$(INSTALL) -d -m 755 $(DESTDIR)$(infodir)
$(INSTALL) -m 644 git.info gitman.info $(DESTDIR)$(infodir)
if test -r $(DESTDIR)$(infodir)/dir; then \
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) git.info ;\
$(INSTALL_INFO) --info-dir=$(DESTDIR)$(infodir) gitman.info ;\
else \
echo "No directory found in $(DESTDIR)$(infodir)" >&2 ; \
fi
正しい名前を持つプログラムはinstall
情報ページを生成し、
/usr/local/git/share/info/
それを確認できます。
$ ls -lh /usr/local/git/share/info/
total 2.3M
-rw-r--r-- 1 root root 218K Jun 13 21:46 git.info
-rw-r--r-- 1 root root 2.1M Jun 13 21:46 gitman.info
目標はinstall-info
コミットに導入され、4739809c
次のように言います。
情報ターゲットディレクトリに "dir"ファイルがまだ含まれていない場合、ディレクトリエントリは作成されません。
名前付きファイルはdir
次の一部です。GNU texinfo
しかし、これは必須ではありません。
また、インストール後に起動するために単に何かを入力する/usr/local/git/bin/
ことはできません。そうでない場合は、次のことを行う必要があります。$PATH
git
git
$ /usr/local/git/bin/git --version
git version 2.17.1
答え2
CentOS 7のソースからGit 2.17.1を正しくインストールする方法
おそらく「2.17.1」パッケージをビルドし、yumを使用して必要なパッケージをインストールできます。
$ rpm -i git-2.17.1-2.fc28.src.rpm
# yum install libcurl-devel libsecret-devel pcre2-devel tk cvs cvsps \
httpd mod_dav_svn subversion subversion-perl perl-DBD-SQLite perl-CPAN
# cpan
cpan[1]> install IO::Pty
cpan[2]> install Test::More
$ cd rpms/SPECS/
$ rpmbuild -bb git.spec
.
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-all-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-core-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-core-doc-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-cvs-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-daemon-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-email-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitk-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/gitweb-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-gui-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/git-p4-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/noarch/perl-Git-SVN-2.17.1-2.el7.noarch.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-subtree-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-svn-2.17.1-2.el7.x86_64.rpm
Wrote: /home/knudfl/rpms/RPMS/x86_64/git-debuginfo-2.17.1-2.el7.x86_64.rpm
16パッケージhttps://drive.google.com/drive/folders/1PRxoicjzHWunFZW-hhXT9JsFk_PQIoLs?usp=sharing