우선 한 가지 전제를 하고 포스팅을 하겠다.

필자는 LDAP에 대한 기본 지식이 없다. 그냥 막 쓰고 싶은 마음만 갖고 있을 뿐이다.

 

 

1. phpLDAPadmin 화면

 

   - 설치 후 처음으로 보인 화면이다.

 

 

 

 

2. dc ? cn ?

 

   - 무언가 약자가 많이 등장한다. 무슨 의미일까?

   - 우선 아래에 나열한 정도로 만족하자.

 

entry 

  attribute

dc

Domain Component

  도메인에 대한 요소

cn

Common Name

  이름

sn

Sir Name

  성 (Family Name)

ou

Organization Unit

  그룹 (조직)

dn

Distinguished Name

  특정한 사용자를 구분할 수 있는 고유의 이름

 

 

 

3. "Create new entry here" and warning !

 

   - 새로운 무언가를 생성해보기 위해서 "Create new entry here"를 선택하니 경고 화면이 나왔다.

 

 

   - "template"과 관련된 무언가가 잘 맞지 않는 것으로 보인다. 정리해보자.

 

$ sudo su

$ cd /etc/phpldapadmin/templates/creation

$ mkdir bak
$ mv ./sambaSamAccount.xml ./bak/
$ mv ./courierMailAlias.xml ./bak/

$ mv ./mozillaOrgPerson.xml ./bak/

$ service slapd restart

 

   - 문제가 되는 것들을 전부 치워놓고 서비스 재시작 한 후 다시 접근하면...

 

 

   - 이제서야 뭔가 제대로 된 것처럼 보인다.

   - (x) 표시가 된 것을을 보면... 방금 한 행위들이 어떤 의미인지 살짝 엿보인다.

 

 

하나씩 알아나가 보자.

 

반응형

'Development Tools > OpenLDAP' 카테고리의 다른 글

phpLDAPadmin - Group 만들기  (0) 2014.12.30
OpenLDAP (Ubuntu 14.04, Package)  (0) 2014.12.08

회사에서 Gerrit~GitHub 연계를 위해서 방법을 찾던 中

부서원들이 GitHub Plugin이라는 것이 있다는 것을 알아냈는데... 좀 문제가 있었다.


바이너리가 아니라 빌드를 해서 사용해야한다는 문제인데...

더욱 더 큰 문제는... 빌드가 쉽지는 않다는 사태가...


기본 가이드 링크는 아래와 같다.

   - https://gerrit.googlesource.com/plugins/github/+/refs/heads/stable-2.12/README.md


언제나 그렇지만... 시키는대로 따라할 수가 없어서 문제이지...



[ Action ]


참고할 정보가 있는 기준(?) 레퍼런스...


https://gerrit-review.googlesource.com/Documentation/dev-buck.html

링크가 깨졌다.


그렇지만, 포기하지 않는다!!!

https://review.openstack.org/Documentation/dev-buck.html

여기에서 확인할 수 있었다.



① Git

   - 소스들을 받아오기 위해서는 기본적으로 Git이 필요하다.


$ sudo apt-get install git


② JDK

   - Gerrit은 기본적으로 Java 기반이기에... 가이드에는 JDK7이 필요하다고 되어있다.

   - 무시하고 JDK8로 환경을 맞춰서 했다가 다 망했다..

   - 무조건 JDK7 환경으로 진행을 해라!!!


③ Ant

   - Buck 이라는 빌드 도구를 빌드하기 위해서는 Ant가 필요하다.

   - 응!? Unix is not Unix ?


$ sudo apt-get install ant


④ Gerrit download

   - Gerrit 빌드할 준비를 위해 미리 소스코드를 내려 받는다.

   - 이번 빌드는 2.10 버전을 기준으로 할 것이다.

     (실제로 2.10 버전을 보면 2.10.7 까지 있는데, 우선은 가이드에 있는 2.10.2 버전으로 해보겠다)


$ cd /srv/workspace

$ git clone --recursive https://gerrit.googlesource.com/gerrit

$ cd gerrit

$ git reset --hard v2.10.2



⑤ Buck

   - 이번에 처음 들어본 빌드 도구이다. Buck ?!

   - Facebook 에서 만들었고, 오픈소스로 공개한 것인가 보다.

      . https://buckbuild.com/

      . https://github.com/facebook/buck


$ cd /srv/workspace

$ git clone https://github.com/facebook/buck

$ cd buck

$ git checkout $(cat ../gerrit/.buckversion)

$ ant

$ export PATH=$PATH:/srv/workspace/buck/bin/



⑥ Gerrit Build

   - 이제 Buck으로 Gerrit을 빌드해보자. 안해도 된다. 그냥 해보기.


$ cd /srv/workspace/gerrit

$ buck build gerrit



⑦ maven

   - 뒤에 것들을 진행하기 위해서 이것도 필요하다.


$ sudo apt-get install maven



⑧ GitHub API

   - 이것도 필요하단다...


$ cd /srv/workspace

$ git clone https://github.com/lucamilanesio/github-api.git

$ cd github-api/

$ mvn install -DskipTests=true



⑨ singleusergroup plugin

   - 또 필요한거 빌드 하자.


$ cd /srv/workspace/gerrit

$ cd ./plugins/singleusergroup

$ git reset --hard v2.10.2

$ cd /srv/workspace/gerrit

$ buck build plugins/singleusergroup/



⑩ github plugin

   - 이제 본게임으로 들어가자

   - 최신 버전으로는 빌드가 안되어 알아낸 방법..... 2.10 버전으로 하면 된다.


$ cd /srv/workspace

$ git clone https://gerrit.googlesource.com/plugins/github

$ cd github

$ git checkout -b stabe-2.10 origin/stable-2.10

$ mvn install


...


[INFO] ------------------------------------------------------------------------

[INFO] Reactor Summary:

[INFO] 

[INFO] Gerrit Code Review - GitHub integration ........... SUCCESS [2.338s]

[INFO] Gerrit Code Review - GitHub OAuth login ........... SUCCESS [22.009s]

[INFO] Gerrit Code Review - GitHub plugin ................ SUCCESS [18.869s]

[INFO] ------------------------------------------------------------------------

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 44.113s

[INFO] Finished at: Mon Mar 27 00:09:03 KST 2017

[INFO] Final Memory: 31M/91M

[INFO] ------------------------------------------------------------------------


빌드까지는 성공~

이후 설치 및 셋팅은 다음 기회에~^^


github-oauth-2.10.3.jar

original-github-oauth-2.10.3.jar

github-plugin-2.10.3.jar

original-github-plugin-2.10.3.jar

github-api-1.69.jar

github-api-1.69-SNAPSHOT.jar

singlegroup.tar.gz

singlegroup.tar.gz

singlegroup.tar.gz

github-oauth-2.13.jar

original-github-oauth-2.13.jar

github-plugin-2.13.jar

original-github-plugin-2.13.jar

singleusergroup.tar.gz

github-api-1.69-SNAPSHOT.jar

singlegroup.tar.gz


반응형

반응형

'Sally's Home School' 카테고리의 다른 글

선사시대 (구석기/신석기) 시대  (0) 2018.01.21


Git에 대해서 공부하다보면, 조금 답답한 것 중 하나가 용어 정리를 해주지를 않는다는 점이다.
그런 것 중 하나가 바로 [ Fast-Forward ]라는 용어다.


이 블로그에 포스팅하고 있는 내용들 모두 마찬가지이지만,
특히 이번 블로그는 절대적으로 개인적인 의견과 함께 개인적으로 정리한 내용이다.
즉, 완전 거짓말일 수 있다는 말이다. 꼭 참고하길 바란다!!! (책임지지 않아요~)



1. 합치자고~

     - Git에서 이루어지는 merge 방법은 다음의 세가지 타입이 있다.
          ▷ 3-way merge
          ▷ fast-forward merge
          ▷ cherry-pick

     - 명령어로 따지면 다음 3가지 방법이 있다.
          ▷ merge
          ▷ rebase
          ▷ cherry-pick



2. 명령어와 방식의 구분

     - 각 명령어와 merge 방식의 관계는 다음과 같다.

  merge rebase cherry-pick
3-way merge O X X
fast-forward merge O O X
cherry-pick X X O

 


     - 즉, merge 명령을 통해서는 상황에 따라 "3-way merge"가 이루어질 수도 있고,
       "fast-forward merge"가 이루어질 수도 있다.

     - rebase 명령의 경우에는 기본적으로 "fast-forward merge"가 이루어진다.
     - cherry-pick 명령은 "cherry-pick"을 위한 명령이다.




3. fast-forward merge

     - fast-forward의 본래 뜻은...!? 앞으로 감다!!! 즉, FF 버튼이나 FFWD 버튼이 바로 이것이다.
     - fast-forward merge가 이루어지는 경우는 두 가지이다.

          ▷ merge 상황에서 merge를 하는 branch에서 별도의 commit이 없는 경우
          ▷ rebase를 수행하는 경우

 


4. 3-way merge

     - 일반적인 merge 상황에서 git은 기본적으로 3-way merge를 수행한다. 
     - 양쪽 브랜치에 commit이 있는 상황에서 merge를 하면 merge commit과 함께 합쳐지는 것이다.

 

5. cherry-pick merge

     - 특정 commit만을 반영하고 싶은 경우이다. 
     - 양쪽 브랜치에 commit이 있는 상황에서 merge를 하면 merge commit과 함께 합쳐지는 것이다.

 

정말 옛날에 작성해놓고 keep 하고 있는 포스팅인데...

자세한 설명은 다음 기회에 하기로 하고... 그냥 발행한다 ^^

(잠자고 있는 포스트 발행하기 프로젝트 중이라서... ㅋㅋ)

 

반응형

 

승냥이에게 자신은 부원배들의 비리를 캐고 있다고 말하는 장면

 

 

 

다시 한 번 말하지만,

기황후의 시대적 배경은 고려말 몽골의 고려침입 이후 원나라의 간섭기이다.

 

원나라의 간섭을 (실제로는 간섭이 아닌 지배... 아니다) 받는 시기이니 만큼

원나라에 빌붙어서 권력을 추구한 세력들이 당연히 있었는데...

이들을 부원세력 또는 부원배라고 불렀다고 한다.

 

 

몽골이 고려를 침략하면서 직접 지배하기 위해 쌍성총관부(雙城摠管府)를 설치하였고

이 과정에서 몽골을 도와준 고려인들에게 직책을 부여하기도 하였다.

이런 이들이 바로 부원세력인데...

조선을 세운 태조 이성계의 집안이 바로 이 쌍성총관부의 관리였다고 한다.

이성계도 이 때 할아버지나 아버지를 도왔으므로 이성계도 부원세력이라고 불러도 무방할 것 같다.

 

 

 

기황후라는 드라마의 주된 갈등이 바로 이 부원세력들과의 사이에서 발생하는 것이다.

 

 

나라를 팔아먹은 놈들이다.

 

 

반응형

 

회사에서 VNC를 사용하고자 하는데, RealVNC 라는 업체에서 제공하는 것은 왠지 찝찝했다.

그러다가 발견한 문구 !!!

 

"free for both personal and commercial usage, with full source code available"

 

http://www.tightvnc.com/

 

거기에다가 vnc4server와 거의 완벽히 일치한다.

 

기본 실행 환경은 Ubuntu Desktop 버전을 기본값으로 그대로 설치하고,

기본 패키지 업그레이드는 기본 상태에서 최신으로 계속 갱신해 놓은 상태이다.

 

아래 내용을 테스트한 환경은 아래와 같다.

- Ubuntu 12.04 LTS 64bit

- Ubuntu 14.04 LTS 64bit

- Ubuntu 16.04 LTS 64bit

 

이하 과정은 vnc4server와 거의 동일하다.

 

 

1. 필요 패키지 설치

 

    본래는 아래 패키지들도 설치해야하지만, 이미 설치되어 있어서 제외하고 설치해도 된다.

 

        - sudo apt-get install gnome-settings-daemon gnome-terminal metacity nautilus

 

    아래와 같이 필요한 패키지를 설치하자

 

$ sudo apt-get install gnome-panel tightvncserver

 

 

 

2. 첫 실행

 

    첫 실행을 해서 기본 Config 등의 구성을 하도록 하면 되는데,

    sudo 없이 계정 권한으로 실행하여도 된다.

 

$ vncserver

 

    아래와 같이 패스워드 설정을 진행하면 된다.

 

 

 

    위의 화면을 보면 알겠지만, 계정 권한으로 실행을 하면 해당 계정으로 환경 설정을 한다.

 

 

 

 

3. 기본 창 관리자 변경

 

    기본 생성된 xstartup 파일에는 내가 원하는 대로 환경 설정이 되어 있지 않다.

    가장 먼저 실행된 vnc4server를 종료부터 하고 xstartup 파일을 수정하자.

 

$ vncserver -kill :1

$ cp ~/.vnc/xstartup ~/.vnc/xstartup.old

$ nano ~/.vnc/xstartup

 

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 

 

 

4. 다시 실행하기

 

    실행할 때에 해상도를 미리 정해줘야 한다.

 

$ vncserver -geometry 1024x768

 

 

 

5. VNC Viewer 로 접속하기

 

    다른 PC에서 해당 IP로 접속하면 된다. 물론 뒤에 디스플레이 번호 붙여서...

    VNC Viewer를 그대로 사용할 수도 있다.

 

 

    예쁘게 잘 나온다!

 

 

 

 

6. TightVNC Java Viewer 로 접속하기

 

    이왕 TightVNC를 사용하는 김에 Viewer도 바꿔 보자.

 

       - http://www.tightvnc.com/download.php

 

 

    다운로드 후 압축을 풀어서 실행하면 된다.

 

 

 

    실행하는 방법은 살짝 다르다. 여기에서는 Display가 아니라 포트 번호를 적어주면 된다.

 

 

 

    실행은 뭐 당연하게도 잘된다!

 

 

 

7. 부팅 時 자동으로 실행

 

    이제 잘 되는 것 까지는 확인했으니, 부팅할 때에 알아서 되도록만 하면 되겠다.

 

$ sudo nano /etc/init.d/vncserver

 

    아래 내용을 그대로 사용하면 된다.

    USER 부분이나 해상도 부분은 각자 상황에 맞게...

 

#!/bin/bash
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Required-Stop:     networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

 

PATH="$PATH:/usr/bin/"
export USER="u12"

 

DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"

 

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

 

. /lib/lsb/init-functions

 

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

 

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

 

restart)
$0 stop
$0 start
;;
esac
exit 0

 

$ sudo chmod +x /etc/init.d/vncserver

$ sudo update-rc.d vncserver defaults

 

    이제는 재부팅을 하여도 잘 된다~!!!

 

반응형

 

리눅스 환경에서 "원격 데스크탑"으로 가장 유명한 SW로 꼽히는 것이 바로 VNC이다. 최근에는 xrdp를 많이 사용하긴 하지만, 그래도 전통을 갖고 있는 VNC...

 

하지만 보통 우리가 알고 있는 VNC SW는 오픈소스 프로젝트가 아닌 것 같다.

RealVNC 라는 업체에서 제공하는 Free 버전의 경우 "For individual private use." 용도로 되어있다.

 

 

뭐 일단 내 PC와 Server가지고 나만 사용하는 것이니까... 라이선스에는 부합하는 것 같은데...

 

 

 

VNC에 대해서 검색을 하다보면 그 대중성과 유명세에 비해서 정보들이 많지 않다.

다들 잘 아는데, 나만 모르는 건가? 나만 검색을 잘 못하는 건가?

 

 

 

일단 VNC를 사용할 때에 좀 귀찮은 부분이 "Desktop Environments"을 맞추는 것이다.

검색 결과의 대부분이 VNC를 셋팅할 때에 가볍게 사용하기 위한 XFce 같은 것으로 알려주고 있다.

나는 그냥 사용하고 있는 Unity 화면과 비스무리하게 사용하고 싶은데...

 

 

그리고, 대부분의 포스트에서 보면 실행 권한에 대한 언급을 볼 수 없었다.

대체 root 권한으로만 해야하는 것인지, 그냥 일반 계정 권한으로 하면 안되는 것인지...

 

 

또 하나는, 포트인데... VNC에서 사용하는 포트가 몇 번인지 명확히 설명해준 글이 많지 않았다.

때로는 방화벽이나 Proxy 등으로 사용하는 포트가 궁금했는데...

 

 

 

결국은 목마른 넘이 우물을 파듯이...

하나씩 찾아보고, 직접 테스트 해보고 하면서 다음과 같이 정리해보았다.

 

 

 

기본 실행 환경은 Ubuntu Desktop 버전을 기본값으로 그대로 설치하고,

기본 패키지 업그레이드는 기본 상태에서 최신으로 계속 갱신해 놓은 상태이다.

 

아래 내용을 테스트한 환경은 아래와 같다.

- Ubuntu 12.04 LTS 64bit

- Ubuntu 14.04 LTS 64bit

- Ubuntu 16.04 LTS 64bit

 

 

 

1. 필요 패키지 설치

 

    본래는 아래 패키지들도 설치해야하지만, 이미 설치되어 있어서 제외하고 설치해도 된다.

 

        - sudo apt-get install gnome-settings-daemon gnome-terminal metacity nautilus

 

    아래와 같이 필요한 패키지를 설치하자

 

$ sudo apt-get install gnome-panel vnc4server

 

 

 

2. 첫 실행

 

    첫 실행을 해서 기본 Config 등의 구성을 하도록 하면 되는데,

    sudo 없이 계정 권한으로 실행하여도 된다.

 

$ vnc4server

 

    아래와 같이 패스워드 설정을 진행하면 된다.

 

 

    위의 화면을 보면 알겠지만, 계정 권한으로 실행을 하면 해당 계정으로 환경 설정을 한다.

 

 

 

 

3. 기본 창 관리자 변경

 

    기본 생성된 xstartup 파일에는 내가 원하는 대로 환경 설정이 되어 있지 않다.

    가장 먼저 실행된 vnc4server를 종료부터 하고 xstartup 파일을 수정하자.

 

$ vnc4server -kill :1

$ cp ~/.vnc/xstartup ~/.vnc/xstartup.old

$ nano ~/.vnc/xstartup

 

#!/bin/sh

export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &

gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &

 

 

 

4. 다시 실행하기

 

    실행할 때에 해상도를 미리 정해줘야 한다.

 

$ vnc4server -geometry 1024x768

 

 

 

5. VNC Viewer 로 접속하기

 

    다른 PC에서 해당 IP로 접속하면 된다. 물론 뒤에 디스플레이 번호 붙여서...

 

 

    예쁘게 잘 나온다!

 

 

 

 

 

6. 부팅 時 자동으로 실행

 

    이제 잘 되는 것 까지는 확인했으니, 부팅할 때에 알아서 되도록만 하면 되겠다.

 

$ sudo nano /etc/init.d/vncserver

 

    아래 내용을 그대로 사용하면 된다.

    USER 부분이나 해상도 부분은 각자 상황에 맞게...

 

#!/bin/bash
### BEGIN INIT INFO
# Provides:          vncserver
# Required-Start:    networking
# Required-Stop:     networking
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
### END INIT INFO

 

PATH="$PATH:/usr/bin/"
export USER="u12"

 

DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"

 

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

 

. /lib/lsb/init-functions

 

case "$1" in
start)
log_action_begin_msg "Starting vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
;;

 

stop)
log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
;;

 

restart)
$0 stop
$0 start
;;
esac
exit 0

 

$ sudo chmod +x /etc/init.d/vncserver

$ sudo update-rc.d vncserver defaults

 

    이제는 재부팅을 하여도 잘 된다~!!!

 

 

 

아! 그리고 Display 1번인 경우 디폴트 포트는 5901 을 사용한다!

다른거 없이 이거 하나만 열리면 사용할 수 있다.

 

 

 

앗싸~ 여기까지!

반응형

 

처음부터 계속 투표하고 있는 귀여운 유정이~ ^^

 

동영상 모음~

 

 

 

 

 

 

 

 

반응형

+ Recent posts