상세 컨텐츠

본문 제목

Raspberry Pi jessie - install git

raspberrypi/etc

by ZelKun 2017. 3. 15. 09:30

본문

반응형

csv, svn 많이 써봤는데 git 대세라고하니..

사용해 보기로 했습니다

 

github등의 사이트들이 있지만 (물론 계정도 만들었지만..)

어짜피 TimeMachine 서버와 svn... 돌고 있으니

라즈베리를 git 서버로 이용하기로 했습니다

 

cvs > svn > git 인게죠

svn 만들때랑 거의 같은 흐름이니 참고하시길

 

  • git 계정 생성

편의를 위해 git계정을 생성하고 git계정을 사용할거에요 pi써도 전혀 상관은 없습니다

pi@rasp2-dev:~ $ sudo useradd git -d /mnt/git

pi@rasp2-dev:~ $ sudo passwd git

useradd 명령은 계정만 만들어주기 때문에 홈디렉토리 등등 직접설정해야 하는 불편함이 있지만

mount 외장하드를 홈디렉토리로 쓸거라 useradd 진행하고 passwd 지정해줍니다

-d 옵션은 디렉토리 설정을 위해 사용했습니다 (현재는 없는 디렉토리입니다, 안만들었으니까요)

addusesr 진행해도 전혀 상관없어요 그냥 개인 취향인거에요

 

  • git mount 디렉토리 생성

mount svn 계정 겸용으로 사용할 디렉토리입니다

sudo mkdir /mnt/git

sudo chown -R /mnt/git

pi@rasp2-dev:~ $ sudo mkdir /mnt/svn

pi@rasp2-dev:~ $ ls -al /mnt

total 12

drwxr-xr-x  4 root root 4096 Nov 13 12:10 .

drwxr-xr-x 21 root root 4096 Feb 10  2016 ..

drwxr-xr-x  2 root root 4096 Nov 13 12:11 git

drwxr-xr-x  2 svn  root 4096 Nov 13 12:10 svn

drwxrwxr-x  1 pi   root   10 Nov 13 11:46 TimeMachine

pi@rasp2-dev:~ $ sudo chown git /mnt/git/

pi@rasp2-dev:~ $ ls -al /mnt

total 12

drwxr-xr-x  4 root root 4096 Nov 13 12:10 .

drwxr-xr-x 21 root root 4096 Feb 10  2016 ..

drwxr-xr-x  2 git  root 4096 Nov 13 12:11 git

drwxr-xr-x  2 svn  root 4096 Nov 13 12:10 svn

drwxrwxr-x  1 pi   root   10 Nov 13 11:46 TimeMachine

디렉토리 생성과 소유권을 git으로 넘겼습니다 그룹도 넘길까했는데 그냥 두었습니다

 

  • 외장하드 정보 확인

TimeMachine 외장디스크를 같이 쓸거니 파티션을 나눠줬습니다 (맥에서 진행했습니다)

TimeMachine git, svn 이렇게 3개의 파티션을 가지겠네요

blkid 외장하드 정보를 확인합니다

pi@rasp2-dev:~ $ blkid

/dev/sda2: UUID="f2472f4b-3e8c" LABEL="hdd" TYPE="hfsplus" PARTUUID="test-timemachine"

/dev/sda3: UUID="6aa304d0-7c72" LABEL="GIT" TYPE="hfsplus" PARTUUID="test-git"

/dev/sda4: UUID="1a7f4b54-7044" LABEL="SVN" TYPE="hfsplus" PARTUUID="test-svn"

UUID, PARTUUID 보기 편하게 해놨는데 실제로는 유니크한 값이 보일거에요

 

  • mount

sudo mount -t hfsplus -o force,rw,users,auto /dev/sda3 /mnt/git

파일시스템 포멧이 hfsplus 되어 있어 하드 자체를 읽기만 되게 mount되서...

강제로 읽고 쓰는 옵션이 추가되있습니다

mkdir: cannot create directory ‘test’: Read-only file system

그냥 mount 하면 외장하드자체를 Read-only 가능합니다...

맥용 파일시스템을 사용하려면 (sudo apt-get install hfsplus  hfsprogs hfsutils) 추가 설치해야합니다

다른 포멧은 mount 해도 될거에요...

pi@rasp2-dev:~ $ sudo mount -t hfsplus -o force,rw,users,auto /dev/sda3 /mnt/git/

pi@rasp2-dev:~ $ ls -al /mnt

total 8

drwxr-xr-x  4 root root 4096 Nov 13 12:10 .

drwxr-xr-x 21 root root 4096 Feb 10  2016 ..

drwxrwxr-x  1 root root    8 Nov 12 15:05 git

drwxrwxr-x  1 root root    8 Nov 12 15:05 svn

drwxrwxr-x  1 pi   root   10 Nov 13 11:46 TimeMachine

pi@rasp2-dev:~ $ df -h

Filesystem      Size  Used Avail Use% Mounted on

/dev/root        15G  5.3G  8.5G  39% /

devtmpfs        459M     0  459M   0% /dev

tmpfs           463M  4.0K  463M   1% /dev/shm

tmpfs           463M  6.4M  457M   2% /run

tmpfs           5.0M  8.0K  5.0M   1% /run/lock

tmpfs           463M     0  463M   0% /sys/fs/cgroup

/dev/mmcblk0p1   60M   25M   36M  41% /boot

tmpfs            93M     0   93M   0% /run/user/1000

/dev/sda2       745G  176G  570G  24% /mnt/TimeMachine

/dev/sda3        94G  204M   93G   1% /mnt/git

/dev/sda4        94G  204M   93G   1% /mnt/svn

mount 하고 보니 git디렉토리가 root 소유로 되버리네요

역시나 git계정으로 잠깐 테스트 하니 권한이 없네요

pi@rasp2-dev:~ $ sudo su - git

git@rasp2-dev:~$ pwd

/mnt/git

git@rasp2-dev:~$ ls -al

total 8200

drwxrwxr-x 1 root root       8 Nov 12 15:05 .

drwxr-xr-x 4 root root    4096 Nov 13 12:10 ..

drwx------ 1   99   99       5 Nov 12 15:05 .fseventsd

dr-xr-xr-t 1 root root       2 Nov 12 15:04 .HFS+ Private Directory Data?

---------- 1 root root 8388608 Nov 12 15:05 .journal

---------- 1 root root    4096 Nov 12 15:04 .journal_info_block

drwx------ 1   99   99       5 Nov 12 15:05 .Spotlight-V100

git@rasp2-dev:~$ mkdir test

touch: cannot touch ‘test’: Permission denied

진행하다 에러나면 귀찮으니 다시 소유권을 git으로 넘겨버립니다

sudo chown -R svn /mnt/git/

pi@rasp2-dev:~ $ sudo chown -R git /mnt/git/

pi@rasp2-dev:~ $ ls -al /mnt

total 8

drwxr-xr-x  4 root root 4096 Nov 13 12:10 .

drwxr-xr-x 21 root root 4096 Feb 10  2016 ..

drwxrwxr-x  1 git  root    8 Nov 12 15:05 git

drwxrwxr-x  1 svn  root    8 Nov 12 15:05 svn

drwxrwxr-x  1 pi   root   10 Nov 13 11:46 TimeMachine

pi@rasp2-dev:~ $ ls -al /mnt/git

total 8200

drwxrwxr-x 1 svn  root       8 Nov 12 15:05 .

drwxr-xr-x 4 root root    4096 Nov 13 12:10 ..

drwx------ 1 svn    99       5 Nov 12 15:05 .fseventsd

dr-xr-xr-t 1 svn  root       2 Nov 12 15:04 .HFS+ Private Directory Data?

---------- 1 svn  root 8388608 Nov 12 15:05 .journal

---------- 1 svn  root    4096 Nov 12 15:04 .journal_info_block

drwx------ 1 svn    99       5 Nov 12 15:05 .Spotlight-V100

소유권이 git으로 넘어갔네요

 

이제 sudo apt-get update && sudo apt-get upgrade 진행합니다

 

  • git 설치합니다

sudo apt-get install git

pi@rasp2-dev:~ $ sudo apt-get install git

Reading package lists... Done

Building dependency tree       

Reading state information... Done

git is already the newest version.

0 upgraded, 0 newly installed, 0 to remove and 242 not upgraded.

pi@rasp2-dev:~ $ 

이미 설치해서 설치할게 없는...

pi@rasp2-dev:~ $ git --version

git version 2.1.4

버전을 보니 2.1.4 네요 설치는 끝났으니 설정을 해야죠

 

git 계정으로 변경합니다

su - git

 

  • git 프로젝트 추가

디렉토리 끝에 git이라고 붙여야 하나라는 생각에 빠졌던 1...

git@rasp2-dev:~$ git init --bare

Initialized empty Git repository in /mnt/git/

git@rasp2-dev:~$ 

svn 달리 최상위 디렉토리도 repository 사용가능해 보이지만..

디렉토리로 구분하기로 했습니다

git 계정 홈디렉토리라 잡다한 파일도 생길테니

repos 폴더 하나만들고 지정해줬습니다

 

git@rasp2-dev:~ $ mkdir repos

git@rasp2-dev:~ $ cd repos/

git@rasp2-dev:~/repos $ git init --bare 

Initialized empty Git repository in /mnt/git/repos/

git@rasp2-dev:~/repos $ ls -al

total 12

drwxr-xr-x 1 git git  10 Nov 20 04:17 .

drwxrwxr-x 1 git root 12 Nov 20 04:17 ..

drwxr-xr-x 1 git git   2 Nov 20 04:17 branches

-rwxr--r-- 1 git git  85 Nov 20 04:17 config

-rw-r--r-- 1 git git  73 Nov 20 04:17 description

-rw-r--r-- 1 git git  23 Nov 20 04:17 HEAD

drwxr-xr-x 1 git git  11 Nov 20 04:17 hooks

drwxr-xr-x 1 git git   3 Nov 20 04:17 info

drwxr-xr-x 1 git git   4 Nov 20 04:17 objects

drwxr-xr-x 1 git git   4 Nov 20 04:17 refs

git@rasp2-dev:~/repos $ tree .

.

├── branches

├── config

├── description

├── HEAD

├── hooks

│   ├── applypatch-msg.sample

│   ├── commit-msg.sample

│   ├── post-update.sample

│   ├── pre-applypatch.sample

│   ├── pre-commit.sample

│   ├── prepare-commit-msg.sample

│   ├── pre-push.sample

│   ├── pre-rebase.sample

│   └── update.sample

├── info

│   └── exclude

├── objects

│   ├── info

│   └── pack

└── refs

    ├── heads

    └── tags

 

9 directories, 13 files

git@rasp2-dev:~/repos $ 

많이도 생겼네..

 


반응형

관련글 더보기

댓글 영역