https://git-scm.com/download/linux
Git Downlaod 페이지에서는 Linux 용 바이너리 파일을 제공하지 않는다.
아래의 URL에서 Source를 다운 받아서 직접 컴파일/빌드를 수행해서 실행 가능한 Git 바이너리를 제작해야 한다.
- https://mirrors.edge.kernel.org/pub/software/scm/git/
- https://github.com/git/git/tags
실습 환경
OS : (RedHat Enterprise Linux) RHEL 8.6 (or CentOS)
Git Source Version : v2.43.0
조건 (중요!!!)
- 아래의 두가지 조건을 충족해야만 오프라인 설치가 가능하다.
1. (root) sudo 권한 사용가능
2. (Local) Yum_Repository 사용가능
- 위 조건이 충족되지 않으면 인터넷이 연결된 다른 PC에서 아래와 같이 Git 소스 컴파일 후 생성된 Git 바이너리 파일을 압축하여 가져와야 한다.
(1~3번의 작업을 Online 가능 Linux에서 작업 수행)
1. Git 소스 파일 업로드 및 압축해제
Git 소스파일은 아래의 경로에서 다운로드 가능하다.
- https://github.com/git/git/tags
[1004lucifer@rhel8 ~]$
# 현재 위치 확인
[1004lucifer@rhel8 ~]$ pwd
/home/1004lucifer
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$
# git-2.43.0.tar.gz 압축 해제
[1004lucifer@rhel8 ~]$ tar zxvf git-2.43.0.tar.gz
git-2.43.0/
git-2.43.0/.cirrus.yml
git-2.43.0/.clang-format
git-2.43.0/.editorconfig
git-2.43.0/.gitattributes
git-2.43.0/.github/
git-2.43.0/.github/CONTRIBUTING.md
... (생략)
git-2.43.0/xdiff/xprepare.h
git-2.43.0/xdiff/xtypes.h
git-2.43.0/xdiff/xutils.c
git-2.43.0/xdiff/xutils.h
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$ ls -l
total 10744
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Desktop
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Documents
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Downloads
drwxrwxr-x. 28 1004lucifer 1004lucifer 16384 Nov 19 20:28 git-2.43.0
-rw-rw-r--. 1 1004lucifer 1004lucifer 10967997 Dec 22 08:31 git-2.43.0.tar.gz
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Music
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Pictures
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Public
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Templates
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Videos
[1004lucifer@rhel8 ~]$
2. 필요한 패키지 설치
- 필요한 패키지를 모두 설치하지 않으면 빌드가 되지 않거나 일부기능(sub command)가 누락되어 빌드가 될 수 있다.
[1004lucifer@rhel8 ~]$
# 필요한 패키지 설치
[1004lucifer@rhel8 ~]$ sudo yum install gcc make autoconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel
[sudo] password for 1004lucifer:
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Last metadata expiration check: 48 days, 6:31:53 ago on Sat 04 Nov 2023 03:00:58 AM EDT.
Dependencies resolved.
==================================================================================================================================================
Package Architecture Version Repository Size
==================================================================================================================================================
Installing:
autoconf noarch 2.69-29.el8 InstallMedia-AppStream 711 k
expat-devel x86_64 2.2.5-8.el8 InstallMedia-BaseOS 57 k
gcc x86_64 8.5.0-10.el8 InstallMedia-AppStream 23 M
gettext-devel x86_64 0.19.8.1-17.el8 InstallMedia-BaseOS 331 k
libcurl-devel x86_64 7.61.1-22.el8 InstallMedia-BaseOS 834 k
make x86_64 1:4.2.1-11.el8 InstallMedia-BaseOS 498 k
openssl-devel x86_64 1:1.1.1k-6.el8_5 InstallMedia-BaseOS 2.3 M
perl-devel x86_64 4:5.26.3-421.el8 InstallMedia-AppStream 599 k
zlib-devel x86_64 1.2.11-18.el8_5 InstallMedia-BaseOS 58 k
Installing dependencies:
annobin x86_64 10.29-3.el8 InstallMedia-AppStream 117 k
cpp x86_64 8.5.0-10.el8 InstallMedia-AppStream 10 M
dwz x86_64 0.12-10.el8 InstallMedia-AppStream 109 k
efi-srpm-macros noarch 3-3.el8 InstallMedia-AppStream 22 k
gettext-common-devel noarch 0.19.8.1-17.el8 InstallMedia-BaseOS 419 k
ghc-srpm-macros noarch 1.4.2-7.el8 InstallMedia-AppStream 9.4 k
glibc-devel x86_64 2.28-189.1.el8 InstallMedia-BaseOS 79 k
... (생략)
python-rpm-macros-3-41.el8.noarch python-srpm-macros-3-41.el8.noarch
python3-pyparsing-2.1.10-7.el8.noarch python3-rpm-macros-3-41.el8.noarch
qt5-srpm-macros-5.15.2-1.el8.noarch redhat-rpm-config-129-1.el8.noarch
rust-srpm-macros-5-2.el8.noarch systemtap-sdt-devel-4.6-4.el8.x86_64
zlib-devel-1.2.11-18.el8_5.x86_64
Complete!
[1004lucifer@rhel8 ~]$
참고
- https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
* Fedora 또는 Debian 기반의 Ubuntu 같은 시스템은 아래와 같이 설치한다.
(Fedora)
$ sudo dnf install dh-autoreconf curl-devel expat-devel gettext-devel openssl-devel perl-devel zlib-devel
(Debian or Ubuntu)
$ sudo apt-get install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev
3. Source Build & Install
- 소스를 빌드하고 원하는 경로에 설치한다.
[1004lucifer@rhel8 ~]$
# Git Source 디렉토리로 이동
[1004lucifer@rhel8 ~]$ cd git-2.43.0/
[1004lucifer@rhel8 git-2.43.0]$
[1004lucifer@rhel8 git-2.43.0]$
# configure 파일 생성
[1004lucifer@rhel8 git-2.43.0]$ make configure
GIT_VERSION = 2.43.0
GEN configure
[1004lucifer@rhel8 git-2.43.0]$
[1004lucifer@rhel8 git-2.43.0]$
# configure 실행 (설치 하려는 디렉토리에 쓰기 권한이 있어야 한다.)
[1004lucifer@rhel8 git-2.43.0]$ ./configure --prefix=/home/1004lucifer/git
configure: Setting lib to 'lib' (the default)
configure: Will try -pthread then -lpthread to enable POSIX Threads.
configure: CHECKS for site configuration
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
... (생략)
checking for library containing getdelim... none required
checking for BSD sysctl... no
checking for POSIX Threads with ''... no
checking for POSIX Threads with '-mt'... no
checking for POSIX Threads with '-pthread'... yes
configure: creating ./config.status
config.status: creating config.mak.autogen
config.status: executing config.mak.autogen commands
[1004lucifer@rhel8 git-2.43.0]$
[1004lucifer@rhel8 git-2.43.0]$
# Build 실행
[1004lucifer@rhel8 git-2.43.0]$ make
* new build flags
CC oss-fuzz/fuzz-commit-graph.o
CC oss-fuzz/fuzz-pack-headers.o
CC oss-fuzz/fuzz-pack-idx.o
CC daemon.o
* new link flags
CC common-main.o
CC abspath.o
CC add-interactive.o
... (생략)
GEN bin-wrappers/test-fake-ssh
GEN bin-wrappers/test-tool
GEN gitweb/gitweb.cgi
GEN gitweb/static/gitweb.js
[1004lucifer@rhel8 git-2.43.0]$
[1004lucifer@rhel8 git-2.43.0]$
# Build된 Git Binary를 설치 경로로 설치
[1004lucifer@rhel8 git-2.43.0]$ make install
SUBDIR git-gui
SUBDIR gitk-git
SUBDIR templates
install -d -m 755 '/home/1004lucifer/git/share/gitweb'
install -m 755 gitweb/gitweb.cgi '/home/1004lucifer/git/share/gitweb'
install -d -m 755 '/home/1004lucifer/git/share/gitweb/static'
install -m 644 gitweb/static/gitweb.js gitweb/static/gitweb.css gitweb/static/git-logo.png gitweb/static/git-favicon.png \
'/home/1004lucifer/git/share/gitweb/static'
install -d -m 755 '/home/1004lucifer/git/bin'
install -d -m 755 '/home/1004lucifer/git/libexec/git-core'
... (생략)
remote_curl_aliases="git-remote-https git-remote-ftp git-remote-ftps" && \
for p in $remote_curl_aliases; do \
rm -f "$execdir/$p" && \
test -n "" && \
ln -s "git-remote-http" "$execdir/$p" || \
{ test -z "" && \
ln "$execdir/git-remote-http" "$execdir/$p" 2>/dev/null || \
ln -s "git-remote-http" "$execdir/$p" 2>/dev/null || \
cp "$execdir/git-remote-http" "$execdir/$p" || exit; } \
done
[1004lucifer@rhel8 git-2.43.0]$
[1004lucifer@rhel8 git-2.43.0]$
# 설치된 Git Binary 확인 (/home/1004lucifer/git)
[1004lucifer@rhel8 git-2.43.0]$ cd /home/1004lucifer
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$ ls -l
total 10756
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Desktop
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Documents
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Downloads
drwxr-xr-x. 5 1004lucifer 1004lucifer 45 Dec 22 09:17 git
drwxrwxr-x. 31 1004lucifer 1004lucifer 28672 Dec 22 09:17 git-2.43.0
-rw-rw-r--. 1 1004lucifer 1004lucifer 10967997 Dec 22 08:31 git-2.43.0.tar.gz
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Music
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Pictures
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Public
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Templates
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Videos
[1004lucifer@rhel8 ~]$
3.1 Git Binary 파일 압축 및 배포
- Offline Linux 에서 Source Build를 할 수 없는 상황인경우 1~3번의 작업을 인터넷이 되는 동일한 OS에서 작업하여 아래와 같이 생성된 바이너리 파일을 Offline Linux 로 (업로드)배포한다.
[1004lucifer@rhel8 ~]$
# Git Binary 파일 압축
[1004lucifer@rhel8 ~]$ tar zcvf git-binary.tar.gz git/
git/
git/share/
git/share/gitweb/
git/share/gitweb/gitweb.cgi
git/share/gitweb/static/
git/share/gitweb/static/gitweb.js
git/share/gitweb/static/gitweb.css
git/share/gitweb/static/git-logo.png
... (생략)
git/libexec/git-core/git-stage
git/libexec/git-core/git-status
git/libexec/git-core/git-switch
git/libexec/git-core/git-version
git/libexec/git-core/git-whatchanged
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$
# 압축된 파일 확인 (해당 파일을 동일 OS의 Offline Linux 로 가져간다.)
[1004lucifer@rhel8 ~]$ ls -l
total 71004
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Desktop
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Documents
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Downloads
drwxr-xr-x. 5 1004lucifer 1004lucifer 45 Dec 22 09:17 git
drwxrwxr-x. 31 1004lucifer 1004lucifer 28672 Dec 22 09:17 git-2.43.0
-rw-rw-r--. 1 1004lucifer 1004lucifer 10967997 Dec 22 08:31 git-2.43.0.tar.gz
-rw-rw-r--. 1 1004lucifer 1004lucifer 61690824 Dec 22 09:27 git-binary.tar.gz
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Music
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Pictures
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Public
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Templates
drwxr-xr-x. 2 1004lucifer 1004lucifer 6 Nov 4 01:42 Videos
[1004lucifer@rhel8 ~]$
4. 환경설정
- 아래의 환경설정은 본인의 환경 / 취향에 맞게 작업
[1004lucifer@rhel8 ~]$
[1004lucifer@rhel8 ~]$ cd git/bin/
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ ls -l
total 117440
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git
-rwxr-xr-x. 2 1004lucifer 1004lucifer 163765 Dec 22 09:17 git-cvsserver
-rwxr-xr-x. 1 1004lucifer 1004lucifer 402054 Dec 22 09:17 gitk
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-receive-pack
-rwxr-xr-x. 2 1004lucifer 1004lucifer 13944064 Dec 22 09:17 git-shell
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-upload-archive
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-upload-pack
-rwxr-xr-x. 2 1004lucifer 1004lucifer 14104232 Dec 22 09:17 scalar
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# Git Binary 파일 위치 확인
[1004lucifer@rhel8 bin]$ pwd
/home/1004lucifer/git/bin
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# PATH 환경변수 설정 전
[1004lucifer@rhel8 bin]$ git --version
bash: git: command not found...
Install package 'git-core' to provide command 'git'? [N/y] ^C
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ ./git --version
git version 2.43.0
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# 해당 내용을 파일의 제일 마지막에 추가 (경로는 본인 설치한 경로로 수정)
[1004lucifer@rhel8 bin]$ vi ~/.bash_profile
export PATH=$PATH:/home/1004lucifer/git/bin
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# 환경변수 Reload
[1004lucifer@rhel8 bin]$ source ~/.bash_profile
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ git --version
git version 2.43.0
[1004lucifer@rhel8 bin]$
1004lucifer
4.1 추가 환경설정 (중요!!)
- 처음 소스 빌드의 설치한 경로와 현재의 Git 디렉토리 경로가 다른경우 아래 작업 필요
1. Online => Offline Linux 로 가져온 후 다른 경로에 Git을 구성한경우
2) 소스 빌드 설치 후 생성된 바이너리 Git 경로가 변경된경우
[1004lucifer@rhel8 bin]$
# Git 명령어 정상 동작 하지만..
[1004lucifer@rhel8 bin]$ git
usage: git [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--config-env=<name>=<envvar>] <command> [<args>]
These are common Git commands used in various situations:
... (생략)
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help <command>' or 'git help <concept>'
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# Git의 Sub Command 동작하지 않음.
[1004lucifer@rhel8 bin]$ git remote-http
git: 'remote-http' is not a git command. See 'git --help'.
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# Git Sub Command 실행경로 셋팅값 확인
[1004lucifer@rhel8 bin]$ git --exec-path
/home/1004lucifer/git/libexec/git-core
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
# 실제 Git이 설치된 경로와 다름
[1004lucifer@rhel8 bin]$ pwd
/home/1004lucifer/git-binary/bin
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ cd ../
[1004lucifer@rhel8 git-binary]$ ll
total 0
drwxr-xr-x. 2 1004lucifer 1004lucifer 154 Dec 22 09:17 bin
drwxr-xr-x. 3 1004lucifer 1004lucifer 22 Dec 22 09:17 libexec
drwxr-xr-x. 8 1004lucifer 1004lucifer 90 Dec 22 09:17 share
[1004lucifer@rhel8 git-binary]$
[1004lucifer@rhel8 git-binary]$ cd libexec/
[1004lucifer@rhel8 libexec]$ ll
total 12
drwxr-xr-x. 3 1004lucifer 1004lucifer 8192 Dec 22 09:17 git-core
[1004lucifer@rhel8 libexec]$ cd git-core/
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$ ll
total 3231864
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-add
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-am
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-annotate
... (생략)
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-whatchanged
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-worktree
-rwxr-xr-x. 141 1004lucifer 1004lucifer 22905472 Dec 22 09:17 git-write-tree
drwxr-xr-x. 2 1004lucifer 1004lucifer 4096 Dec 22 09:17 mergetools
-rwxr-xr-x. 2 1004lucifer 1004lucifer 14104232 Dec 22 09:17 scalar
[1004lucifer@rhel8 git-core]$
# 실제 Git Sub Command 위치한 경로를 확인
[1004lucifer@rhel8 git-core]$ pwd
/home/1004lucifer/git-binary/libexec/git-core
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$
# Git의 GIT_EXEC_PATH 환경변수를 설정 (경로는 본인 경로 맞게..)
[1004lucifer@rhel8 git-core]$ vi ~/.bash_profile
export GIT_EXEC_PATH=/home/1004lucifer/git-binary/libexec/git-core
[1004lucifer@rhel8 git-core]$
[1004lucifer@rhel8 git-core]$
# Git Sub Command 정상 동작 확인
[1004lucifer@rhel8 git-core]$ git remote-http
error: remote-curl: usage: git remote-curl <remote> [<url>]
[1004lucifer@rhel8 git-core]$
- system config 를 사용할 시 오류가 발생하는 경우
(위애서 git 설치 시 system config의 경로를 지정하지 않았음, prefix 경로인 /home/1004lucifer/git 경로에 etc/gitconfig 가 기본 셋팅됨)
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ git config --system -l
fatal: unable to read config file '/home/1004lucifer/git/etc/gitconfig': No such file or directory
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$
[1004lucifer@rhel8 bin]$ git config --system --edit
hint: Waiting for your editor to close the file... fatal: Invalid path '/home/1004lucifer/git/etc': No such file or directory
[1004lucifer@rhel8 bin]$
# 다음과 같이 작업이 가능하다.
[1004lucifer@rhel8 git]$
# 현재위치 확인 (Git 설치된 디렉토리)
[1004lucifer@rhel8 git]$ pwd
/home/1004lucifer/git
[1004lucifer@rhel8 git]$
[1004lucifer@rhel8 git]$ ls -l
total 0
drwxr-xr-x. 2 1004lucifer 1004lucifer 154 Jan 20 02:06 bin
drwxr-xr-x. 3 1004lucifer 1004lucifer 22 Jan 20 02:06 libexec
drwxr-xr-x. 8 1004lucifer 1004lucifer 90 Jan 20 02:06 share
[1004lucifer@rhel8 git]$
# etc 디렉토리를 생성해 준다.
[1004lucifer@rhel8 git]$ mkdir etc
[1004lucifer@rhel8 git]$
[1004lucifer@rhel8 git]$ ls -l
total 0
drwxr-xr-x. 2 1004lucifer 1004lucifer 154 Jan 20 02:06 bin
drwxrwxr-x. 2 1004lucifer 1004lucifer 6 Jan 20 03:17 etc
drwxr-xr-x. 3 1004lucifer 1004lucifer 22 Jan 20 02:06 libexec
drwxr-xr-x. 8 1004lucifer 1004lucifer 90 Jan 20 02:06 share
[1004lucifer@rhel8 git]$
[1004lucifer@rhel8 git]$ cd etc
[1004lucifer@rhel8 etc]$
# etc 디렉토리안에 gitconfig 파일 생성 (system config 파일)
[1004lucifer@rhel8 etc]$ touch gitconfig
[1004lucifer@rhel8 etc]$
[1004lucifer@rhel8 etc]$ pwd
/home/1004lucifer/git/etc
[1004lucifer@rhel8 etc]$
[1004lucifer@rhel8 etc]$ ls -l
total 0
-rw-rw-r--. 1 1004lucifer 1004lucifer 0 Jan 20 03:17 gitconfig
[1004lucifer@rhel8 etc]$
# system config 파일 환경변수를 추가해 준다. (경로는 본인PC의 경로에 맞게..)
[1004lucifer@rhel8 etc]$ vi ~/.bash_profile
[1004lucifer@rhel8 etc]$
[1004lucifer@rhel8 etc]$
[1004lucifer@rhel8 etc]$ cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
export PATH=$PATH:/home/1004lucifer/git-binary/bin
export GIT_EXEC_PATH=/home/1004lucifer/git-binary/libexec/git-core
export GIT_CONFIG_SYSTEM=/home/1004lucifer/git/etc/gitconfig
[1004lucifer@rhel8 etc]$
[1004lucifer@rhel8 etc]$
# 추가한 환경변수를 현재 쉘에 바로 적용
[1004lucifer@rhel8 etc]$ source ~/.bash_profile
[1004lucifer@rhel8 etc]$
# 에러 발생하지 않음 확인
[1004lucifer@rhel8 etc]$ git config --system -l
[1004lucifer@rhel8 etc]$
PS.
- 혹시나 소스 빌드 시 --exec-path 경로를 상대경로로 지정 가능할까 싶어 configure 파일을 뒤져서 --exec-prefix 옵션을 알아냈지만.. 상대 경로로는 설정 및 빌드가 불가능했었다.
- 결국 Online 에서 가져온 Git Binary 설치 시 GIT_EXEC_PATH 환경변수는 무조건 셋팅이 필요한 상황이다.
[1004lucifer@rhel8 git-2.43.0]$ ./configure --prefix=/home/1004lucifer/git --exec-prefix=../libexec/git-core
configure: error: expected an absolute directory name for --exec_prefix: ../libexec/git-core
[1004lucifer@rhel8 git-2.43.0]$
참고
- https://raw.githubusercontent.com/git/git/master/INSTALL
- https://yoosejin.github.io/etc/2021/01/09/upgrade-git.html
- https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables
- https://git-scm.com/download/linux
댓글
댓글 쓰기