D2CampusFest / 3rd

27 stars 4 forks source link

[WikiNote] 두가지 방식의 설치를 지원할때 config directroy의 위치 #2

Open bluemir opened 8 years ago

bluemir commented 8 years ago

저희가 만드는 위키노트는 설치형 위키(?)처럼 사용할수도 있고 개별 프로그램으로 실행할수 도 있게끔 하려는 것을 목표로 하는데요. 그러다 보니 config 폴더의 위치에 관련된 문제가 생겼습니다. 관련 이슈는 bluemir/wikinote#26 입니다. 다른 분들은 어떻게 처리하시는 지 궁금하네요.

저희 프로그램은 크게 두가지 방법으로 설치할수 있습니다.

  1. npm install 을 통한 설치 - 일반적으로 /usr/local 에 설치됩니다. 일반 실행파일처럼 실행할수 있습니다.
  2. git clone 을 통한 설치 - 일반적으로 사용자 폴더에 설치 됩니다. node를 통해서만 실행할수 있습니다.
    • 1의 경우
    • 시스템 폴더에 설치가 되기 때문에 config 파일이 /usr/local에 존재하게되고 해당파일은 일반 권한으로는 변경 불가하기 때문에 config 파일이 서버에 의해 변경되어야 할경우 권한이 없게 됩니다.
    • 실행시 그냥 명령어 처럼 실행하기 떄문에 현재 디렉토리를 기준으로 config를 찾게 되어 config 파일 찾기가 힘들어 집니다.- (시스템 별로 위치가 달라질수 있음)
    • 설치/설정/실행 과정이 매우 간편해 집니다. (명령어 실행하듯 실행하고 arguement 로 config 값을 받으면 되므로)
    • 2의 경우
    • config위치는 찾기 쉽습니다.
    • 권한 문제도 없습니다.
    • 설치/설정/실행 과정이 조금 복잡해 집니다.(git clone 하고 설정 일일히 config 값(yaml)을 바꾸고 노드를 통해 실행해야 합니다.

저희 팀에서는 1번과 2번 모두 다 지원 하고 싶은데요. 문제는 그러면 config 폴더 위치가 어디여야 하고 어느 설정을 먼저 볼것인지가 문제가 되는 상황입니다.

현재는 크게 사용자 디렉토리에 dot file을 생각하고 있습니다만, 이건 설치형에서는 또 어색해서 말이죠...

질문과 설명이 좀 두서 없습니다만, 이렇게 설치형과 명령어 실행형(?)을 같이 지원하고 싶을경우 어떻게 하는게 좋을까요? 좀더 명확하게는 config 파일이 어디에 존재해야 하고 어떻게 찾는게 좋을까요?

jafffy commented 8 years ago

일반적으로 global configuration은 /etc 아래에, user specific config는 home에 놓더군요. 아래 링크 참고하세요. http://stackoverflow.com/questions/1024114/location-of-ini-config-files-in-linux-unix