우리 아이가 어렸을 적에 쓰기 위해서 구매했던 노트북이 있었는데,

이제는 성능이 제대로 나오지 않아 새로운 노트북을 구매하면서 마땅한 사용처가 없어졌다.


그래서, 버리려다가 저전력 서버로 한 번 셋팅해보고자 마음을 먹었다.



무려 2세대 !!! ㅋㅋㅋ


메모리도 2GB 밖에 안되었는데...

마침 맥북프로 메모리 업그레이드 하면서 교체했던 것이 있어서 4GB로 업그레이드~!!





1. Ubuntu Server 다운로드


  - "Ubuntu Server 20.04.1 LTS" 버전으로 다운로드 받아서 설치하기로 했다.


  - https://ubuntu.com/download/server



  - "Option 3번"으로 다운로드 받으면 된다.





2. 설치 USB 만들기


  - 부팅 USB 만들기 위해서 rufus 포터블로 다운로드 받아보자.


  - https://rufus.ie/


  - 다운로드 받은 뒤 실행한 뒤에



  - 위와 같이 설정을 하면 된다. (파티션 방식, 대상 시스템, 파일 시스템, 클러스터 크기 등)



  - "시작"을 누르면 위와 같은 화면이 나오는데, 그냥 "예"를 선택하면 된다.



  - ISO 이미지 모드로 쓰면 된다.





3. 노트북 BIOS 셋팅


  - 일단 BIOS에 들어가면 된다. (삼성 노트북은 부팅할 때 F2를 눌러주면 된다)


  - Boot 순서 항목에서 USB를 앞으로 잡아주면 된다.






4. Ubuntu 설치


  - 설치 언어는 그냥 English로 잡아주자. 한글 등은 나중에 직접 잡아주면 된다.



  - 설치 중에... 유선랜을 연결하지 않았더니, 인터넷 안된다고 뭐라한다. 뭐 일단은 그냥 무시하고 고고~~~!!



  - 그냥 나머지는 쭉~쭉~ 설치하면 된다.


  - 하지만, 재부팅 후에 로그인을 해도... 무선랜이 동작하지 않는다. 이걸 잡아보자.





5. cloud-init 제거



$ sudo dpkg-reconfigure cloud-init


제일 하단의 None 항목 빼고 나머지 전부 선택을 해제


$ sudo apt purge cloud-init


$ sudo rm -rf /etc/cloud/

$ sudo rm -rf /var/lib/cloud/


또는,


$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud

$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud





(VirtualBox 에서 게스트 확장 설치하기)


  - 메뉴 - 장치 - 게스트 확장 CD 이미지 삽입...


$ sudo mkdir /media/cdrom


$ sudo mount -t iso9660 /dev/cdrom /media/cdrom


$ sudo apt install build-essential linux-headers-`uname -r`


$ sudo /media/cdrom/./VBoxLinuxAdditions.run


$ sudo umount -v /media/cdrom


$ sudo reboot






6. 무선랜 설정


  - Reference : https://medium.com/@yping88/how-to-enable-wi-fi-on-ubuntu-server-20-04-without-a-wired-ethernet-connection-42e0b71ca198


  - 무선랜 드라이버 설치를 위해 파일들을 복사해야 한다. 다음의 3개 파일을 다운로드 받자 (다른 PC에서)


    . http://mirrors.kernel.org/ubuntu/pool/main/w/wpa/wpasupplicant_2.9-1ubuntu4_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/libn/libnl3/libnl-route-3-200_3.4.0-1_amd64.deb

    . http://mirrors.kernel.org/ubuntu/pool/main/p/pcsc-lite/libpcsclite1_1.8.26-3_amd64.deb


  - USB는 앞에서 사용한 것을 재활용하기로 하고, FAT32로 포맷해서 준비하자.


  - 앞에서 다운로드 받은 3개의 파일을 USB에 넣자.


  - USB를 우리의 Ubuntu Server Notebook에 꼽자


  - USB를 바로 사용하지는 못하지만, 꼽힌 것을 인식했는지를 우선 확인해보자.


$ sudo fdisk -l



  - 제일 아래 부분을 보면 USB가 보일 것이다. Device 명칭을 잘 확인하자.


  - USB를 mount 하기 위해서 mount 위치 용도의 디렉토리 하나 만들고 mount를 하자.


$ sudo mkdir /media/usb


$ sudo mount -t vfat /dev/sdb1 /media/usb



  - USB에서 보이는 3개의 파일을 설치하면 된다.


$ cd /media/usb


$ sudo dpkg -i libnl-route-3-200_3.4.0-1_amd64.deb libpcsclite1_1.8.26-3_amd64.deb wpasupplicant_2.9-1ubuntu4_amd64.deb


  - 이제는 무선랜카드가 잘 잡혔는지 확인해보자.


$ ls -al /sys/class/net/



  - 밑에 보면 "wlp2s0b1"과 같이 제대로 인식된 것을 확인해볼 수 있다. (물론 다른 환경에서는 다른 이름일 수도 있다!!!)


  - 다른 명령어로도 확인해볼 수 있다.


$ ip link



  - 무선랜카드가 잘 잡혔으니, 이제 무선랜 설정을 해보자.


  - netplan 으로 설정하면 되는데, 기존 설정 파일을 백업하고 설정 작업하면 된다.


$ sudo cp /etc/netplan/00-installer-config.yaml /etc/netplan/00-installer-config.yaml


$ sudo nano /etc/netplan/00-installer-config.yaml


network:

  ethernetes: {}

  version: 2

  wifis:

    wlp2s0b1:

      dhcp4: true

      optional:true

      access-points:

        "SSID Name":

          password: "**********"

  renderer: networkd


  - 각자 환경에 맞는 "SSID Name"과 "Password" 설정하면 된다.


  - 문법에 맞춰서 잘 설정했는지 확인해보자.


$ sudo netplan --debug generate


  - 문제가 없으면 이제 실제 적용을 해보자.


$ sudo netplan apply


  - 제대로 동작을 하는지 보기 위해서 재부팅을 하면 된다.


$ sudo reboot





7. 기본 패키지 업그레이드


  - 이제 인터넷이 되니 패키지 업그레이드를 하자


$ sudo apt update


$ sudo apt upgrade


  - 네트워크 관련 도구도 설치를 하자


$ sudo apt install net-tools





8. Language Pack 설치


  - 정상적인 한글 사용을 위해 Language Pack 설치를 해보자


$ sudo apt install language-pack-ko


$ sudo locale-gen ko_KR.UTF-8


$ sudo dpkg-reconfigure locales


$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX




9. Timezone 셋팅


  - Timezone도 제대로 되어있는지 셋팅해보자.


$ sudo timedatectl


$ sudo timedatectl list-timezones | grep Seoul


$ sudo timedatectl set-timezone Asia/Seoul


$ sudo timedatectl


$ date





10. nano 설정


  - 주요 데이터로 nano를 사용하기 위한 환경 설정도 해보자.


$ nano ~/.nanorc


set tabsize 4

set tabstospaces


  - root 계정을 위해서도 추가로 셋팅해주자.


$ sudo nano /root/.nanorc





11. 노트북 덮개 설정


  - 노트북 덮개를 닫더라도 절전 모드로 전환되지 않도록 하기 위한 설정을 하자.


$ sudo nano /etc/systemd/logind.conf


  - "HandleLidSwitch=ignore" 라인을 추가하면 된다.


...

#HandleLidSwitch=suspend

HandleLidSwitch=ignore 

...


  - 수정한 내역을 반영해보자.


$ sudo systemctl restart systemd-logind






12. ssh-server


  - 이미 설치되어있던데... 혹시 모르니


$ sudo apt install openssh-server


  - 이제 외부에서 접속해보면 된다.





13. git 설치하기


  - 요즘은 기본이 되어버린 git ... 설치하고 기본 환경 셋팅을 하자


$ sudo apt install git


  - 사용자 환경 설정을 하자


$ git config --global user.name "whatwant"


$ git config --global user.email "whatwant@whatwant.com"






14. zsh


  - zsh 설치해보자


$ sudo apt install zsh


$ sudo apt install fonts-powerline


$ chsh -s $(which zsh)


  - 로그아웃 하고 재로그인을 해야 이후 셋팅을 진행한다.



  - 그냥 2번으로 선택해보자.


  - oh-my-zsh 설치를 진행하자.


$ sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"


  - theme를 변경해보자.


$ nano ~/.zshrc


# ZSH_THEME="robbyrussell"

ZSH_THEME="agnoster"


  - 또, 로그아웃 하고 재로그인 해보자. 원하는 모습으로 잘 나올 것이다.


  - 유용한 플러그인도 몇 가지 설치해보자


$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting


$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions


  - 다운로드 받은 플러그인을 등록하자.


$ nano ~/.zshrc


#plugins=(git)

plugins=(git zsh-syntax-highlighting zsh-autosuggestions)


  - 그리고 다시 설정 파일을 로딩하면 된다.


$ source ~/.zshrc


  - 멀티라인으로 출력되도록 하자.


$ nano ~/.oh-my-zsh/themes/agnoster.zsh-theme


  - 아래 파란색으로 된 부분만 추가해주면 된다.


...

## Main prompt

build_prompt() {

  RETVAL=$?

  prompt_status

  prompt_virtualenv

  prompt_aws

  prompt_context

  prompt_dir

  prompt_git

  prompt_bzr

  prompt_hg

  prompt_newline

  prompt_end

}


## multiline

prompt_newline() {

  if [[ -n $CURRENT_BG ]]; then

    echo -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR

%(?.%F{$CURRENT_BG}.%F{red})❯%f"


  else

    echo -n "%{%k%}"

  fi


  echo -n "%{%f%}"

  CURRENT_BG=''

}


PROMPT='%{%f%b%k%}$(build_prompt) '






15. sudo 패스워드 없애기


  - 툭하면 sudo를 사용해야하는데, 자꾸 패스워드 입력하는 것이 귀찮으니 없애버리자.


$ sudo visudo


  - 원하는 계정에 대해서 아래와 같이 제일 밑에 라인을 추가하자


whatwant ALL=(ALL) NOPASSWD:ALL





16. NTP


  - 시간 자동 동기화 설정 여부를 확인해보자.


$ timedatectl status


                      Local time: 일 2020-12-27 03:10:03 KST

                 Universal time: 토 2020-12-26 18:10:03 UTC

                        RTC time: 토 2020-12-26 18:10:04

                      Time zone: Asia/Seoul (KST, +0900)

 System clock synchronized: no

                    NTP service: inactive

                RTC in local TZ: no


  - 위와 같이 "System clock synchronized: no"로 되어 있으면 이하 과정을 실행해야 한다.


$ sudo systemctl start systemd-timesyncd


$ sudo systemctl enable systemd-timesyncd


  - 다시 확인해보자


$ timedatectl status


                       Local time: 일 2020-12-27 03:17:33 KST

                  Universal time: 토 2020-12-26 18:17:33 UTC

                         RTC time: 토 2020-12-26 18:17:34

                       Time zone: Asia/Seoul (KST, +0900)

System clock synchronized: yes

                     NTP service: active

                  RTC in local TZ: no


  - 혹시라도 방화벽 이슈로 NTP 서버를 변경해야 하면 아래와 같이 하면 된다.


$ sudo nano /etc/systemd/timesyncd.conf


  - NTP 부분의 주석 삭제하고 아래와 같이 서버를 지정해주면 된다.


NTP=time.windows.com



반응형


오래된 노트북으로 서버 한 대를 셋팅하던 중, Docker를 설치하는 과정을 기록해보려 한다.



공식 홈페이지 가이드를 따라서 진행했다.

- https://docs.docker.com/engine/installation/linux/ubuntu/



※ 이 블로그를 계속 봐오신 분들은 아시겠지만... 아래 내용은 직접 실행해보면서 작성한 것입니다.



1. Ubuntu version

    - Ubuntu Focal 20.04 (LTS)


❯ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 20.04.1 LTS

Release: 20.04

Codename: focal


❯ uname -a  

Linux whatwant 5.4.0-58-generic #64-Ubuntu SMP Wed Dec 9 08:16:25 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux



2. Binary 확인

    - 웹으로 다운로드 받을 버전을 확인하자.


https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/



3. Download 받기


$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/containerd.io_1.4.3-1_amd64.deb

$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce-cli_20.10.1~3-0~ubuntu-focal_amd64.deb

$ wget https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/docker-ce_20.10.1~3-0~ubuntu-focal_amd64.deb



4. Docker 설치하기


$ sudo dpkg --install ./containerd.io_1.4.3-1_amd64.deb

$ sudo dpkg --install ./docker-ce-cli_20.10.1~3-0~ubuntu-focal_amd64.deb

$ sudo dpkg --install ./docker-ce_20.10.1~3-0~ubuntu-focal_amd64.deb



5. sudo 없이 실행하기


$ sudo usermod -aG docker $USER


  - 로그아웃 후 재로그인해야 적용



6. Hello World


$ docker run hello-world

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

0e03bdcc26d7: Pull complete 

Digest: sha256:1a523af650137b8accdaed439c17d684df61ee4d74feac151b5b337bd29e7eec

Status: Downloaded newer image for hello-world:latest


Hello from Docker!

This message shows that your installation appears to be working correctly.


To generate this message, Docker took the following steps:

 1. The Docker client contacted the Docker daemon.

 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.

    (amd64)

 3. The Docker daemon created a new container from that image which runs the

    executable that produces the output you are currently reading.

 4. The Docker daemon streamed that output to the Docker client, which sent it

    to your terminal.


To try something more ambitious, you can run an Ubuntu container with:

 $ docker run -it ubuntu bash


Share images, automate workflows, and more with a free Docker ID:

 https://hub.docker.com/


For more examples and ideas, visit:

 https://docs.docker.com/get-started/



끝~



반응형


Ubuntu 18.04 Server 설치를 하고 부팅을 하는데

신경 거슬리게 하는 메시지가 자꾸 출력이 되었다.



▷ cloud-init

    - 클라우드 인스턴트를 초기화하기 위한 유틸리티들을 제공해주는 패키지


우쒸... 필요도 없는 것이 거슬리게 하네... 지워버려야겠다!!!


$ sudo apt-get purge cloud-init


이제 이상한 메시지가 안나온다.





반응형


이번에 회사 업무 때문에 간만에 서버 OS 설치가 필요한 상황이 되어서,

집에서 미리 한 번 해보면서 기록을 해보고자 한다.


1. Image Download

http://releases.ubuntu.com/18.04/



(option) 2. for Virtualbox (VirtualBox Extension Pack)


$ sudo apt install virtualbox-guest-dkms linux-headers-virtual

$ sudo mkdir -p /media/cdrom

$ sudo mount /dev/cdrom /media/cdrom

$ cd /media/cdrom

$ sudo ./VBoxLinuxAdditions.run



3. Language Pack


$ sudo apt-get install language-pack-ko

$ sudo locale-gen ko_KR.UTF-8

$ sudo dpkg-reconfigure locales

$ sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX



4. Timezone


$ sudo timedatectl

$ sudo timedatectl list-timezones | grep Seoul

$ sudo timedatectl set-timezone Asia/Seoul

$ sudo timedatectl

$ date



(option) 5. nano


$ nano ~/.nanorc


set tabsize 4

set tabstospaces



6. set time


$ sudo apt-get install ntpdate

$ sudo ntpdate time.windows.com



(option) 7. remove cloud-init


    - 설치하고 부팅을 하면 로그인 화면에서 자꾸 걸리적거리는 cloud-init 관련 메시지... 삭제해버리고 싶어서 했다.

    - cloud-init 정체는 아래 링크에서 확인

        . https://access.redhat.com/documentation/ko-kr/red_hat_virtualization/4.1/html/virtual_machine_management_guide/sect-using_cloud-init_to_automate_the_configuration_of_virtual_machines

    - 이하 내용은 다음 링크를 100% 참고했다.

        . https://nucco.org/2018/05/ubuntu-18-04-chronicles-removing-cloud-init.html


$ sudo dpkg-reconfigure cloud-init


제일 하단의 None 항목 빼고 나머지 전부 선택을 해제


$ sudo apt-get purge cloud-init


$ sudo rm -rf /etc/cloud/

$ sudo rm -rf /var/lib/cloud/


또는,


$ sudo mv /etc/cloud /srv/remove/cloud-init/etc-cloud

$ sudo mv /var/lib/cloud/ /srv/remove/cloud-init/var-lib-cloud


반응형

Windows 환경에서 Subversion 서버 환경을 구축하는 방법 중 하나로 BitNami 패키지를 활용하는 방법을 살펴보았었다.

   - Subversion 설치 (Windows, BitNami) : http://whatwant.tistory.com/609


상당히 편리하기는 하지만,
솔직히 필자의 취향과는 너무도 다른 방식이기에 공식 배포판을 가지고 환경을 구축하는 방법을 살펴보고자 한다.


리눅스(Ubuntu) 환경에서는 필자가 좋아하는 방식인 SourceCode로 설치하는 방법을 살펴보았었다.

   - Subversion 설치 (Ubuntu, SourceCode) : http://whatwant.tistory.com/566


Windows에서도 SourceCode를 빌드할 수 있겠지만,
솔직히 최근 하루에 30분 짬내기도 힘든 상황에서 좋아하지도 않는 Windows 환경에 시간 투자하기는.... ^^



공식적으로 Windows 환경을 위한 Binary는 다음과 같이 제공이 되고 있다.

   - http://subversion.apache.org/packages.html#windows




1. Download

서버를 구성하기 위해서 최근에 유행(?)하는 것은 VisualSVN이다.

   - http://www.visualsvn.com/


Windows 환경에서 대부분 그렇듯이 Client와 Server 두 가지로 구분되어서 제공되고 있다.

   - http://www.visualsvn.com/downloads/

위 경로로 접속하면 다운로드는 3가지로 구분이 되어서 배포되고 있다.



   - http://www.visualsvn.com/server/download/

System Requirements 등을 확인하면서 다운로드를 받기 위해 위 경로로 접속해보자.


대부분의 Windows 운영체제를 지원해주고 있고 상당히 낮은 CPU와 RAM, HDD 를 요구하고 있다.
즉, 어지간한 환경이라면 다 가능하다라는 아름다운 조건이다~!!!

잡소리가 길었다. [ download now ]를 눌러서 다운로드 받고 실행하자.



2. Install

사실 대부분의 상황에서도 그렇지만, 특히나 서버 프로그램은 경로를 포함해서 되도록이면 Default 설정을 따르는 것이 좋다.
선택의 상황들에 대해서 잘 읽어보고 되도록이면 기본 설정으로 가자.


위 설정을 바꿔야 하는 상황이라면 이미 expert일테니.... ^^


VisualSVN은 상용 Enterprise Edition도 제공을 하고 있다.
좋은 소프트웨어라 판단된다면, 또는 회사 업무용으로 사용한다면 구매해서 사용하는 것을 권장한다.
특히, 인증이나 로그 관련한 부분만으로도 충분히 가치가 있다고 생각한다.


공부를 위해 또는 테스트 용도로 사용한다면, "Standard Edition"으로 선택해서 설치를 계속 진행하자.


설치 경로는 별다른 사유가 없다면 그대로 설정을 하고,
저장소 경로는 각자의 상황에 따라 적절히 변경을 하면 될 것 같다.

그리고, 서버로 사용할 포트를 설정하는데 기본값은 보안을 위해 [ https ]를 사용하는 것을 권장하고 있다.


테스트 용도로 사용하거나 방화벽 등의 이슈가 있는 상황에서는 그냥 일반 http 포트인 80번 포트를 사용하자.


설치 과정이 진행이 되면 위와 같이 마무리가 된다.


서버 프로그램다운(?) Management 화면이 나온다.



repository 생성하고, 계정 관리하고 하는 부분에 대해서는 따로 포스팅하도록 하겠다.

반응형

바로 앞에서 Remote repository 를 clone 하여서 받아왔다.
이번에는 만든 work repository 에서 작업한 내용을 Server로 보내는 작업을 해보자.

더불어서 git 에서 한글파일명을 쓸 때 발생하는 문제까지 같이 살펴보겠다.



1. modify + error


$ nano ./한글파일명.txt
$ git add ./한글파일명.txt
$ git commit -m 'push + 한글파일명 검증'

위 스크린샷에 모든 것이 나와있다.

새로운 계정에서 repository를 clone 하였고,
해당 work repository에서 새로운 파일을 추가한 다음에
commit을 하고자 하는데 여기서 바로 error가 발생을 했다!

error가 발생한 이유는,
"commit 을 하려고 하는데 누가 commit을 하려는 건지 정체를 알 수가 없으니 알려줘!!!"



2. user


$ git config --global.email bigbang@whatwant.com
$ git config --global.name bigbang
$ git commit -m 'push + 한글파일명 검증'

앞에서 살펴본바와 같이 git을 사용하기 전에는 항상 환경 설정을 해줘야 한다.

   - http://whatwant.tistory.com/295

그런데,
위 스크린샷을 보면 특이한 점을 볼 수 있을 것이다. 무엇인지 찾으실 수 있으신가요?!



3. push


$ git push

다음에 다시 한 번 제대로 설명을 하겠지만,

일단, 위에서 진행한 'commit'은 Server와 별개로 현재 계정의 work repository에서 작업을 한 것이다.
작업한 내용을 Server로 보내는 작업이 필요한데, 그것이 바로 " git push"이다.

그런데, 위 스크린샷을 보면 알겠지만 그냥 넘어가지 않고, error가 발생을 한다!

우리에게 모든 것을 알려주시는 친절한 git 선생님의 말씀을 잘 읽어보면,
권한(permission)이 충분하지 않다고 나온다.
그렇다! 바로 권한!!!



4. permission


서버 즉, Remote repository 의 권한을 한 번 살펴보자.

위 스크린샷을 보면 user와 group에게는 모두 권한을 주고 있지만,
다른 사용자들에게는 읽기 권한만 주고 있는 것을 확인할 수 있다.

그렇다!
이전에 계속 말한바와 같이 git은 어디까지나 기본적인 파일 권한을 기반으로 사용한다.

그러면, 여러 계정이 이 repository를 사용하게 하려면 어떻게 해야할까?



5. group


$ sudo groupadd barerepo
$ sudo usermod -G bigbang,barerepo bigbang

해당 repository를 사용하는 사용자들을 묶을 그룹을 하나 만들어보자.
   - sudo groupadd barerepo

사용자 'bigbang'을 barerepo 그룹에도 포함을 시키자.
   - sudo usermod -G bigbang.barerepo bigbang


일반적으로 'usermod'는 익숙하지 않을 것 같은데...
사용자의 정보를 변경하는 명령어이다. 그 중 '-G' 옵션은 그룹에 대한 정보를 변경한다는 의미이다.
여러 그룹에 속할 경우 ','로 나열을 하면 되고, 변경하고자 하는 계정은 제일 뒤에 적어주면 된다.

즉, 위 스크린샷에서는
" 'bigbang'이라는 계정은 'bigbang'이라는 그룹과 'barerepo'라는 그룹, 두 곳에 속한다! "
라는 의미이다.



6. chown


$ sudo chown -R chani.barerepo ./BareRepo.git 

위 스크린샷을 차례대로 살펴보길 바란다.

   - 'BareRepo.git' 은 chani 계정이 생성하였다. (주인은 chani)
   - 'chown'을 통해서 소유 group을 'barerepo'로 변경하였다.


'chown' 이라는 명령어에 대해서 조금 더 설명을 하자면,
당연하게도 소유자를 변경(chage owner)하기 위해서 사용을 하는 것이고,
하위 디렉토리 및 파일들도 일괄적으로 변경하기 위해서는 '-R' 옵션을 사용하면 된다.
user와 group은 '.'으로 연결하면 된다.


이제, 'BareRepo.git' repository는 barerepo 그룹 사용자들에게도 쓰기 권한이 있다!!!



7. push


$ git push 

이 부분을 테스트하면서 조금 의아심이 들었지만...
일단, 위에서 따라온 것처럼 권한 부분을 맞춰주면 스크린샷과 같이 정상적으로 push가 된다.

Remote repository로 변경 내역을 전달한 것이다!!!


여기서 의아하다는 점은,
분명 에러가 발생을 해야하는데 그냥 push가 되어버렸다는 점이다!!!


$ git config push.default tracking

본래는 push 를 어떻게 할 것인지 명시하지 않았기 때문에 error가 발생을 해야한다.
그런데, 왜 위 스크린샷에서 보는 것처럼 그냥 넘어갔는지는 의문이다.

만약, 여러분의 경우에 push할 때에 에러가 발생한다면,
혹 발생하지 않았더라도 위와 같이 tracking을 설정해놓으시길...



8. 한글파일명


한글 파일을 추가할 때 뭔가 이상하게 숫자들의 집합으로 등록이 된 것을 앞에서 확인했을 것이다.

 bigbang@chani-Ubuntu:~/workspace/BareRepo$ git commit -m 'push + 한글파일명 검증'
[master 5705788] push + 한글파일명 검증
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 "\355\225\234\352\270\200\355\214\214\354\235\274\353\252\205.txt"

잘못 등록된 것이 아니라 Unicode로 변경되어 전달된 것이다.
위 스크린샷을 보면 알겠지만, clone 을 하여도 제대로 파일명이 되어있는 것을 알 수 있을 것이다.

하지만, 위와 같이 등록이 될 경우에 일부 문제가 있을 수도 있다.
예를 들어서 Redmine의 저장소로 사용될 경우
파일의 이름이 한글이 아니라 저 숫자로 된 코드가 그대로 파일명으로 나오기도 한다.


$ sudo git config --system core.quotepath false

사용자 계정이 아니라 root 계정을 통해 system의 설정을 변경해야 한다.
이렇게 할 경우 다른 side effect가 있는지는 아직 모르겠다.


commit 부분을 살펴보면, 앞에서와 달리 한글이 그대로 반영되는 것을 볼 수 있을 것이다.


일단은 그냥 기본 값으로 사용하는 것을 추천하고,
Redmine의 경우와 같이 사용에 문제가 있을 경우 위와 같이 설정 변경을 통해 해결하는 것을 제안한다.

이로 인한 side effect에 대해서는 계속 확인을 해보겠다.



간만에 길게 쓴 포스팅인데, 춥고 졸리다! ㅠㅠ

반응형

'SCM > Git-GitHub' 카테고리의 다른 글

업데이트 - git pull, 중간 정리  (0) 2012.03.17
Remote Repository - git push  (2) 2012.03.04
Git Server - push + 한글  (1) 2012.02.26
Git Server - Remote Connect  (0) 2012.02.25
Git Server - SSH  (2) 2012.02.23
Git Server - Local  (0) 2012.02.22
  1. 음냐리애플 2014.04.03 11:45

    $ git config --global.email bigbang@whatwant.com
    $ git config --global.name bigbang

    >>>수정>>>

    $ git config --global user.email bigbang@whatwant.com
    $ git config --global user.name bigbang

    춥고 졸리셨나봐요 :)

+ Recent posts