2020년 3월 25일 수요일

CentOS 7 - Subversion 설치.

Subversion 설치하기.


7.x 버전에서 달라진 systemctl 및 firewall 때문에 정리.


1. Subversion 설치



  
yum install subversion
cs


2. Repository root 생성.


   Repository root로 사용할 경로를 생성한다.
  
  
mkdir -/var/opt/svn/repositories/
cs


3. svnserve 설정 파일 수정.


  
vi /etc/sysconfig/svnserve
cs


  
# OPTIONS is used to pass command-line arguments to svnserve.
#
# Specify the repository location in -r parameter:
OPTIONS="--threads -r /var/opt/svn/repositories"
cs


4. Repository 설정.


   실제 프로젝트에 사용할 repository 설정은 똑같아서 생략합니다.
   authz, passwd, svnserve.conf 파일을 수정합니다.

5. Firewall 등록.


  
firewall-cmd --permanent --zone=public --add-port=3690/tcp
firewall-cmd --reload
cs


6. 서비스 등록 및 시작.


  
systemctl enable svnserve.service
systemctl start svnserve.service
cs


7. 하지만, 


   기대한 것과 다르게 정상적으로 repository에 접근할 수 없습니다.
   SELinux 관련 에러가 발생하고 로그를 확인해 보면 문제가 있음을 확인 가능합니다.


8. SELinux


   repositories 경로 권한 문제로 파일의 security context를 변경해야 합니다.


  
chcon --t svnserve_content_t /var/opt/svn/repositories
cs


  

2020년 3월 16일 월요일

Unity Google Sign In ...

Google Sign-In Unity Plugin

 

하란대로 하면 안되서 정리한다 ㅠㅠ.

 

1. Plugin download.


   Google Sign-In Unity Plugin release에서 최신 버전을 다운로드 받는다.
   google-signin-plugin-1.0.4.unitypackage 및 GoogleSignIn-sample.unitypackage 파일을
   다운로드 받는다.

2. Unity 프로젝트 생성 및 패키지 임포트.

 


   작업에 사용한 Unity 버전은 2019.3.0f6 버전으로 다음 위치에서 패키지를 임포트합니다.


   하지만, 기대와 다르게 임포트하자마자 에러를 만나게 됩니다.


   에러 내용은 다음과 같습니다.

Library\PackageCache\com.unity.textmeshpro@2.0.1\Scripts\Editor\TMP_PackageUtilities.cs(310,17): error CS0433: The type 'Task' exists in both 'Unity.Tasks, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' and 'mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'

   해결 방법은 다음 링크에 나와있는대로 패키지의 parse 폴더를 제외합니다.
   error CS0433: The type 'Task' exists in both Unity.Tasks,....


   그리고 나면 또 다른 에러가 엄청나게 나옵니다.


   해당 에러에 대한 힌트는 다음 링크에서 확인 가능합니다.
   ArgumentException: Requested value 'x86' was not found

   간단하게 요약하면 unity-jar-resolver 패키지를 설치하면 됩니다.
   최신 버전은 v1.2.137 이고 zip 파일을 다운로드 하고 압축을 푼 뒤에
   play-services-resolver-1.2.137.0 패키지를  설치해주면 됩니다.

   다음 그림과 같이 버전이 낮은 파일이 이미 사용중일 수 있지만
   최신 버전으로 업데이트 합니다.


   그리고 나면 더이상 쓸모없는 파일을 삭제할 지 묻는 다이얼로그 윈도우가 뜨게 되는데,
   삭제하겠다고 선택하면 됩니다.


   그럼 더 이상 에러는 발생하지 않습니다.
   마지막으로 제일 처음 다운로드 받았던 샘플 패키지를 임포트하면 준비는 끝났습니다.

3. Keystore 생성.


   먼저 File - Build Settings - Platform을 Android로 변경한 뒤,
   App signing을 위해 키를 생성합니다.



   키 분실의 우려가 있으므로 프로젝트 아래 적당한 경로에 저장하고
   버전 관리 시스템을 사용할 수 있도록 합니다.

   구글 앱 서명 방식이 변경되어 앱 서명 인증서와  업로드 인증서로 나뉘고 구글에서 
   관리하도록 변경되어 분실을 하게 되더라도 복구할 방법이 현재는 존재합니다.


   위 그림과 같이 키스토어에 키를 하나 생성합니다.
   그리고 나면 최종적으로 다음과 같이 설정됩니다.


   그리고 Player - Other Settings에서 사용할 Package Name을 설정해 주면 됩니다.


4. Google APIs.


   Google Sign-In api 사용을 위해 사용자 인증 정보를 생성합니다.
   Google API console에서 사용자 인증 정보 - 사용자 인증 정보 만들기를 선택한 뒤,
   OAuth 클라이언트 ID를 선택하고 마지막으로 Android 선택 후 내용을 채워주면 됩니다.


   생성한 뒤 Unity에서 Web Client Id를 설정합니다.
   Canvas를 선택하고 Signin Sample Script 컴포넌트에 설정합니다.


   그리고 빌드한 뒤 apk 배포 후 테스트 해보면 역시나 안된다.


   이름도 거룩하다, DeveloperError ...

5. Google Sign-In for Android.


   Google Sign-In for Android 페이지에서 아래로 스크롤 하다 보면
   Configure a project 버튼을 찾을 수 있습니다.





   최종적으로 Web client (Auto-created for Google Sign-in) 이름으로 생성된
   OAuth 2.0 클라이언트 ID가 생기고 이 아이디를 사용해야 로그인이 됩니다.

   참고로, Google API console에서 클라이언트 ID를 생성할 때 Android가 아니라 
   웹 애플리케이션을 선택해서 만들어도 됩니다.

   이제 만들어진 클라이언트 ID로 빌드하게 되면 로그인이 드디어 됩니다.


2020년 1월 7일 화요일

Grafana & graphite 그리고 모니터링 #06.

CentOS 7.x 버전에 설치하기.

 

이전에 기록했던 CentOS 6.x 버전에 설치하기대로 설치가 안된다.

 

1. Docker 설치

 

  
1
yum install docker
cs


2. pip upgrade

 

  
1
pip install --upgrade pip
cs


3. Docker 설정 변경

 

   /etc/sysconfig/docker 파일에서 다음 그림과 같이 설정을 수정


4. Docker 시작하기.


  
1
2
3
systemctl enable docker.service
systemctl start docker.service
systemctl status docker.service
cs



5. Docker image build.

 

  
1
docker build -f ./Dockerfile --tag graphite:1.0 ./
cs



6. Rpmdb checksum is invalid: dCDPT(pkg checksums): libXext.x86_64 0:1.3.3-3.el7 - u


   하지만, 실패 ㅠㅠ



   여러가지 해결 방법이 존재한다.

7. 해결 방법

 

   제일 처음에 다음과 같이 Docker overlay fs 추가하거나,

  
1
RUN yum -y install yum-plugin-ovl
cs


   다른 방법으로

  
1
RUN yum install -y graphite-web;yum clean all
cs


   혹은

  
1
RUN rpm --rebuilddb && yum install -y graphite-web
cs