라이믹스/매뉴얼/라이믹스 업데이트: 두 판 사이의 차이

Gaon12 (토론 / 기여)
https://rhymix.org/manual/introduction/update 에서 가져옴(CC BY-SA 4.0)
 
Gaon12 (토론 / 기여)
내용울 좀 더 쉽게 개선
 
1번째 줄: 1번째 줄:
== 라이믹스 업데이트 ==
== 개요 ==
[[라이믹스]]는 계속해서 새로운 기능이 추가되고, 버그 수정과 보안 패치가 수시로 이루어집니다. 
따라서 라이믹스를 사용해 운영하는 사이트는 정기적으로 업데이트해야 안전하고 최신 기능을 유지할 수 있습니다.


라이믹스는 활발하게 개발이 이루어지고 있으며 수시로 새 기능이 추가, 버그 수정, 보안패치 등이 이루어지므로 라이믹스를 사용하여 운영하시는 사이트는 자주 업데이트하실 준비가 되어 있어야 합니다.
업데이트 방법은 크게 두 가지입니다. 
# 새 버전으로 덮어씌우기 (초보자 추천) 
# Git을 이용한 업데이트 (버전 관리 시 추천)


라이믹스는 크게 두 가지 방법으로 업데이트할 수 있습니다.
== 새 버전으로 덮어씌우기 ==
이 방법은 가장 간단하며, 라이믹스 설치 절차와 동일합니다.


=== 새 버전으로 덮어씌우기 ===
# [https://github.com/rhymix/rhymix/releases 라이믹스 공식 릴리스 페이지]에서 최신 ZIP 파일을 다운로드합니다. 
# 서버의 기존 라이믹스 설치 위치에 압축을 풀거나 덮어씌웁니다.


라이믹스 설치 방법과 동일합니다. 최신 버전을 다운로드하여 기존 사이트에 덮어씌웁니다.
<syntaxhighlight lang="bash">
wget https://github.com/rhymix/rhymix/archive/master.zip
unzip master.zip -d /path/to/your/site
</syntaxhighlight>


모든 설정과 첨부파일 등은 <code>files</code> 폴더 및 DB에 저장되므로 라이믹스를 덮어씌워도 안전합니다. (배포된 파일에는 <code>files</code> 폴더가 포함되어 있지 않습니다.)  
<code>files</code> 폴더와 DB에는 사용자 설정 및 첨부파일이 저장되므로, 덮어씌워도 데이터 손실 없이 안전합니다.
각각의 폴더 내에 추가로 설치하신 모듈, 애드온, 스킨 등의 서드파티 자료도 마찬가지입니다.
단, 코어 파일을 직접 수정한 경우 모든 변경 내역이 사라질 수 있습니다. 
{{경고박스|코어 파일을 수정해서 사용 중이라면 이 방법을 쓰면 수정 내용이 전부 초기화됩니다.}}  
→ 코어를 수정한 상태에서 업데이트하려면 아래의 Git 방법을 사용하세요.


단, 라이믹스에서 배포하는 파일을 수정하여 사용하고 계셨다면 이 방법으로 업데이트할 경우 모든 변경내역이 초기화될 수 있습니다. 
== Git으로 업데이트하기 ==
변경분만 업데이트하고 싶으신 분은 아래에서 설명할 git 방식을 사용하시기 바랍니다.
Git으로 설치한 경우, 명령어 몇 개만으로 손쉽게 최신 상태로 유지할 수 있습니다.


=== git으로 업데이트하기 ===
=== 소스 수정이 없는 경우 ===
 
<code>git status</code> 명령을 실행했을 때 "modified", "deleted" 메시지가 없으면 코어 소스에 수정 사항이 없는 상태입니다.   
라이믹스를 git으로 설치하셨다면 git으로 업데이트하실 수 있습니다.
(추가한 모듈·스킨 등은 "Untracked files"에 표시되지만, 이는 문제가 되지 않습니다.)
 
이 상태라면 다음 한 줄로 업데이트가 완료됩니다.
==== 소스 수정이 없는 경우 ====
 
<code>git status</code> 명령을 내렸을 때 ''modified'', ''deleted'' 등으로 나오는 것이 없다면 소스 수정이 없는 것입니다.   
(추가한 파일, 서드파티 자료 등은 ''Untracked files'' 아래에 나옵니다. 이것은 문제가 되지 않습니다.)
 
소스 수정이 없다면 아래의 명령으로 간단하게 업데이트할 수 있습니다.


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
30번째 줄: 35번째 줄:
</syntaxhighlight>
</syntaxhighlight>


단, 이 명령 사용 시 현재 브랜치(master 또는 develop)만 업데이트되므로 브랜치를 변경할 경우 다시 업데이트해 주어야 합니다.
설명: 
 
* <code>git pull</code>은 원격 저장소의 최신 커밋을 로컬에 가져와 자동으로 병합합니다. 
==== 소스 수정이 있는 경우 (간단한 수정) ====
* 브랜치를 변경했다면, 해당 브랜치에서도 다시 <code>git pull</code>을 실행해야 합니다.   
 
[https://git-scm.com/docs/git-pull Git 공식 문서: git-pull]
<code>git status</code> 명령을 내렸을 때 ''modified'', ''deleted'' 등으로 나오는 파일이 있다면 해당 파일이 변경된 경우입니다. 이 경우 업데이트 시 충돌이 발생할 수 있습니다.   
라이믹스는 수시로 변경되는 분량이 많기 때문에 어느 파일도 안전하지 않습니다!


변경 내역이 간단한 경우 <code>git stash</code>를 사용해서 소스 수정이 없는 상태로 임시 전환한 후, 업데이트를 마치고 기존의 변경 내역을 재적용하는 방법이 있습니다.
=== 소스 수정이 있는 경우 (간단한 수정) ===
 
코어 파일을 일부 수정해 두었다면, 업데이트 시 충돌(conflict)이 발생할 수 있습니다. 
우선 아래의 명령으로 변경 내역을 따로 저장합니다.
작은 수정만 있을 때는 <code>git stash</code>로 임시 보관했다가 업데이트 후 다시 꺼내는 방법이 편리합니다.


==== 단계별 가이드 ====
# 변경 사항을 임시 저장합니다: 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git stash
git stash
</syntaxhighlight>
</syntaxhighlight>
 
<ol start="2">
변경 내역을 따로 저장하고 나서 <code>git status</code> 명령을 내려보면 소스 수정이 없는 상태로 보일 것입니다.
<li>이때 <code>git status</code>를 실행하면 "clean" 상태가 됩니다.</li>
이 때 아래의 명령으로 업데이트를 합니다.
<li>이제 원격 저장소에서 변경 사항을 가져옵니다:</li>
 
</ol>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash>
git pull
git pull
</syntaxhighlight>
</syntaxhighlight>
 
<ol start="4">
업데이트가 성공하면 아래의 명령으로 따로 저장해 두었던 변경 내역을 재적용합니다.
<li>업데이트가 완료되면, 숨겨둔 변경 사항을 다시 적용합니다:</li>
 
</ol>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git stash apply
git stash apply
</syntaxhighlight>
</syntaxhighlight>
<ol start="5">
<li>충돌이 없으면 이걸로 끝납니다.</li>
</ol>


충돌이 발생하지 않으면 이것으로 업데이트를 마칩니다.
{{경고박스|동일한 파일의 동일한 부분을 수정했다면 <code>git stash apply</code> 단계에서 충돌이 발생합니다. 충돌 표시(<nowiki><<<<<<<, =======, >>>>>>></nowiki>)를 찾아 직접 수정한 뒤 저장하세요.}}  
 
만약 동일한 파일의 동일한 부분이 변경되었다면 이 단계에서 충돌이 발생할 것입니다.
이 경우 어느 파일이 충돌인지 화면에 표시되니, 즉시 해당 부분을 찾아서 수정해 주시기 바랍니다.   
충돌하는 파일을 그대로 방치할 경우 백지현상 등 심각한 문제가 발생할 수 있습니다.
 
안전하게 업데이트가 끝났다면 아래의 명령으로 따로 저장해 두었던 변경 내역을 삭제합니다.


<ol start="6">
<li>작업이 모두 완료되면, 더 이상 필요 없는 임시 저장 데이터를 삭제합니다:</li>
</ol>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git stash clear
git stash clear
</syntaxhighlight>
</syntaxhighlight>


==== 소스 수정이 있는 경우 (대폭 수정) ====
[https://git-scm.com/docs/git-stash Git 공식 문서: git-stash]


git은 대부분의 상황에서 커밋(commit)을 기준으로 변경 내역을 추적하기 때문에, 소스 수정 분량이 많은 경우 커밋을 하지 않는 stash 방식으로 변경 내역을 관리하기에는 한계가 있습니다. 
=== 소스 수정이 있는 경우 (대규모 수정) ===
이 때는 별도의 브랜치에서 변경 내역을 커밋한 후 공식 브랜치(master 또는 develop)와 merge하는 과정이 필요합니다.
수정 분량이 많거나 여러 차례 커밋하며 작업했다면, 별도 브랜치에서 관리하는 편이 안전합니다.
 
우선 별도의 브랜치를 생성합니다. 브랜치 이름은 <code>mybranch</code> 대신 사이트 이름 등 쉽게 구분할 수 있는 것을 사용하십시오.


==== 단계별 가이드 ====
# 새 브랜치를 만듭니다 (브랜치명은 사이트 이름 등으로 구분): 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git checkout -b mybranch
git checkout -b mybranch
</syntaxhighlight>
</syntaxhighlight>
 
<ol start="2">
지금까지의 변경내역을 모두 커밋합니다. (아래의 예제는 서드파티 자료 등은 무시하고 코어 수정분만 커밋합니다.)
<li>현재 변경 내역을 모두 커밋합니다:</li>
 
</ol>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git add -u .
git add -u .
git commit -m "변경내역 커밋"
git commit -m "사이트 커스터마이징 커밋"
</syntaxhighlight>
</syntaxhighlight>
 
<ol start="3">
운영 도중에도 어느 정도 규모의 변경이 발생할 때마다 이렇게 커밋을 해주는 것이 좋습니다. 
<li>공식 저장소의 master(또는 develop) 브랜치를 로컬로 가져옵니다:</li>
변경 내역 때문에 문제가 생겼을 때 쉽게 되돌릴 수 있으니까요.
</ol>
 
변경내역을 커밋했으면 기존의 브랜치에 업데이트 내역을 받아옵니다. (현재 브랜치로 직접 받아오면 안됩니다.)
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git fetch origin master:master
git fetch origin master:master
git fetch origin develop:develop
git fetch origin develop:develop
</syntaxhighlight>
</syntaxhighlight>
 
<ol start="4">
현재 브랜치는 건드리지 말고 master는 master로, develop은 develop으로 받아오라는 뜻입니다. 
<li>작업 브랜치에서 master를 병합합니다:</li>
평소 master와 develop 중 하나만 사용하시는 경우 한쪽만 업데이트하셔도 무방합니다.
</ol>
 
업데이트 정보를 받아왔으면 현재 브랜치와 merge합니다.
 
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
git merge master
git merge master
</syntaxhighlight>
<ol start="5">
<li>충돌이 없다면 완료. 충돌이 발생하면 표시된 파일을 열어 수정하고, 아래를 실행하세요:</li>
</ol>
<syntaxhighlight lang="bash">
git add -u .
git commit -m "충돌 해결 및 업데이트 반영"
</syntaxhighlight>
</syntaxhighlight>


평소 develop 브랜치를 사용하시는 경우 이 명령에서 master 대신 develop을 사용하십시오.
{{정보박스|이 워크플로우는 대규모 커스터마이징 상태에서도 안전하게 업데이트와 충돌 관리를 할 수 있는 정석 방법입니다.}}
 
충돌이 발생하지 않으면 이것으로 업데이트를 마칩니다.
 
만약 동일한 파일의 동일한 부분이 변경되었다면 이 단계에서 충돌이 발생할 것입니다. 
이 경우 어느 파일이 충돌인지 화면에 표시되니, 즉시 해당 부분을 찾아서 수정해 주시기 바랍니다.


충돌이 발생하는 파일을 모두 수정한 후에는 다시 커밋을 해주어야 합니다.
== 관련 문서 ==
* [[Git#stash]] – stash 사용법 
* [[Git#merge]] – merge 전략 
* [https://git-scm.com/docs Git 공식 문서 전체]


<syntaxhighlight lang="bash">
<!-- 분류 -->
git add -u .
[[분류:라이믹스]] [[분류:라이믹스/매뉴얼]]
git commit -m "업데이트"
</syntaxhighlight>

2025년 6월 23일 (월) 16:32 기준 최신판

개요[편집 / 원본 편집]

라이믹스는 계속해서 새로운 기능이 추가되고, 버그 수정과 보안 패치가 수시로 이루어집니다. 따라서 라이믹스를 사용해 운영하는 사이트는 정기적으로 업데이트해야 안전하고 최신 기능을 유지할 수 있습니다.

업데이트 방법은 크게 두 가지입니다.

  1. 새 버전으로 덮어씌우기 (초보자 추천)
  2. Git을 이용한 업데이트 (버전 관리 시 추천)

새 버전으로 덮어씌우기[편집 / 원본 편집]

이 방법은 가장 간단하며, 라이믹스 설치 절차와 동일합니다.

  1. 라이믹스 공식 릴리스 페이지에서 최신 ZIP 파일을 다운로드합니다.
  2. 서버의 기존 라이믹스 설치 위치에 압축을 풀거나 덮어씌웁니다.
wget https://github.com/rhymix/rhymix/archive/master.zip
unzip master.zip -d /path/to/your/site

files 폴더와 DB에는 사용자 설정 및 첨부파일이 저장되므로, 덮어씌워도 데이터 손실 없이 안전합니다. 단, 코어 파일을 직접 수정한 경우 모든 변경 내역이 사라질 수 있습니다.

⚠ 경고: 코어 파일을 수정해서 사용 중이라면 이 방법을 쓰면 수정 내용이 전부 초기화됩니다.

→ 코어를 수정한 상태에서 업데이트하려면 아래의 Git 방법을 사용하세요.

Git으로 업데이트하기[편집 / 원본 편집]

Git으로 설치한 경우, 명령어 몇 개만으로 손쉽게 최신 상태로 유지할 수 있습니다.

소스 수정이 없는 경우[편집 / 원본 편집]

git status 명령을 실행했을 때 "modified", "deleted" 메시지가 없으면 코어 소스에 수정 사항이 없는 상태입니다. (추가한 모듈·스킨 등은 "Untracked files"에 표시되지만, 이는 문제가 되지 않습니다.) 이 상태라면 다음 한 줄로 업데이트가 완료됩니다.

git pull

설명:

  • git pull은 원격 저장소의 최신 커밋을 로컬에 가져와 자동으로 병합합니다.
  • 브랜치를 변경했다면, 해당 브랜치에서도 다시 git pull을 실행해야 합니다.

Git 공식 문서: git-pull

소스 수정이 있는 경우 (간단한 수정)[편집 / 원본 편집]

코어 파일을 일부 수정해 두었다면, 업데이트 시 충돌(conflict)이 발생할 수 있습니다. 작은 수정만 있을 때는 git stash로 임시 보관했다가 업데이트 후 다시 꺼내는 방법이 편리합니다.

단계별 가이드[편집 / 원본 편집]

  1. 변경 사항을 임시 저장합니다:
git stash
  1. 이때 git status를 실행하면 "clean" 상태가 됩니다.
  2. 이제 원격 저장소에서 변경 사항을 가져옵니다:
git pull
  1. 업데이트가 완료되면, 숨겨둔 변경 사항을 다시 적용합니다:
git stash apply
  1. 충돌이 없으면 이걸로 끝납니다.

⚠ 경고: 동일한 파일의 동일한 부분을 수정했다면 git stash apply 단계에서 충돌이 발생합니다. 충돌 표시(<<<<<<<, =======, >>>>>>>)를 찾아 직접 수정한 뒤 저장하세요.

  1. 작업이 모두 완료되면, 더 이상 필요 없는 임시 저장 데이터를 삭제합니다:
git stash clear

Git 공식 문서: git-stash

소스 수정이 있는 경우 (대규모 수정)[편집 / 원본 편집]

수정 분량이 많거나 여러 차례 커밋하며 작업했다면, 별도 브랜치에서 관리하는 편이 안전합니다.

단계별 가이드[편집 / 원본 편집]

  1. 새 브랜치를 만듭니다 (브랜치명은 사이트 이름 등으로 구분):
git checkout -b mybranch
  1. 현재 변경 내역을 모두 커밋합니다:
git add -u .
git commit -m "사이트 커스터마이징 커밋"
  1. 공식 저장소의 master(또는 develop) 브랜치를 로컬로 가져옵니다:
git fetch origin master:master
git fetch origin develop:develop
  1. 작업 브랜치에서 master를 병합합니다:
git merge master
  1. 충돌이 없다면 완료. 충돌이 발생하면 표시된 파일을 열어 수정하고, 아래를 실행하세요:
git add -u .
git commit -m "충돌 해결 및 업데이트 반영"

ℹ 정보: 이 워크플로우는 대규모 커스터마이징 상태에서도 안전하게 업데이트와 충돌 관리를 할 수 있는 정석 방법입니다.

관련 문서[편집 / 원본 편집]

최근 바뀜

더 보기