내 Dotfile 및 앱을 백업/동기화하는 방법

내 관심사는 배포판의 패키지 관리자를 통해서든 npm 또는 pip 와 같은 타사 패키지 관리자를 통해서든 내 구성 파일(일명 도트 파일)의 백업을 자동화하고 설치된 모든 앱의 스냅샷을 생성하는 것입니다. 이것은 새로 설치된 컴퓨터에서 내 앱을 자동으로 동기화하기 전의 첫 번째 단계입니다(아직 수행 중임).

도트 파일 백업



내가 한 것은 내 모든 도트 파일이 여기에 있으므로 내 $HOME 디렉토리에 git repo를 만드는 것입니다. 그러나 다른 모든 파일(사진, 다운로드, 바탕 화면...)을 푸시하고 싶지 않기 때문에 와일드카드(.gitignore)만 포함된 * 파일을 넣었습니다. 이렇게 하면 repo에 파일을 추가하고 싶을 때 git add -f newfile 를 강제로 사용해야 합니다.

cd ~
git init
echo "*" > .gitignore
git add -f .gitignore
git add -f .bashrc
git add -f .zshrc
git add -f .config/fish
git add -f .tmux.conf
git add -f .SpaceVim.d/init.toml
git commit -m "First commit"
git remote add origin [email protected]:username/mydotfiles
git push -u origin master

⚠️ 하지만 당신의 현명한 데이터에 위험할 수 있으니 주의하세요. 예를 들어 ~/.ssh 구성을 푸시하지 마십시오!

따라서 컴퓨터를 새로 설치하거나 충돌이 발생한 경우 구성을 빠르게 검색할 수 있습니다.

다음 단계는 앱에서 동일한 작업을 수행하는 것입니다.

앱의 스냅샷 생성



앱에 관해서는 그렇게 쉽지 않습니다. 여러 패키지 관리자가 새 앱을 설치하는 것은 드문 일이 아닙니다. 개인적으로 저는 Manjaro Linux 배포판의 관리자인 npm , cargo , ghc-pkg , composer , gem , pippacman 중 7개를 사용합니다. 각각은 패키지를 설치, 삭제 또는 업데이트하기 위한 고유한 구문을 가지고 있습니다.
그러나 이들 각각에는 설치된 패키지 목록을 출력하는 자체 구문도 있습니다.

따라서 기본적으로 다음 bash 스크립트를 사용하여 모든 패키지 관리자에서 설치된 모든 패키지 목록을 생성합니다.

#!/bin/bash

echo "Generating the lists of explicitly installed packages in ~/.backup"

pacman -Qe > ~/.backup/pacman_packages || echo "pacman failed"
gem list > ~/.backup/gem_packages || echo "gem failed"
npm list -g --depth=0 > ~/.backup/npm_packages || echo "npm failed"
pip list > ~/.backup/pip_packages || echo "pip failed"
cargo --list | tail -n +2 | tr -d " " > ~/.backup/cargo_packages || echo "cargo failed"
ghc-pkg list > ~/.backup/ghc-pkg_packages || echo "ghc-pkg failed"
composer global show | cut -d ' ' -f1 > ~/.backup/composer_packages || echo "composer failed"

git add -f .backup

exit 0

스크립트 끝에 있는 git add 명령에 유의하십시오. 원격으로 푸시되도록 ~/.backup 폴더를 git 인덱스에 자동으로 추가하기 위해 이렇게 합니다. 그리고 이 스크립트를 pre-commit 후크에 넣으면 내가 커밋할 때마다 내 패키지 목록이 git과 동기화됩니다.

biros on  master [!]
➜ git commit -m "Update conf"
Generating the lists of explicitly installed packages in ~/.backup
[master 27f73e4] Update conf
 1 file changed, 1 insertion(+)




⏭️ 다음 단계: 백업에서 모든 앱을 자동으로 다시 설치할 수 있습니다.

💡 힌트: Atom 플러그인을 sync-settings 플러그인과 동기화할 수 있습니다.

📚 동일한 주제에 대한 다른 리소스:


좋은 웹페이지 즐겨찾기