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

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 "충돌 해결 및 업데이트 반영"

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

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