리눅스

[Ubuntu 20.04] Ubuntu 20.04에서 애플 타임머신(AFP) 서버 설치하기

나태준 2021. 6. 17. 02:35
반응형

외장하드가 아닌 우분투 서버에서 애플 타임머신을 작동시키려면 SMB나 AFP프로토콜을 이용해야 한다.

하지만 우린 SMB따위 쓰지 않고 AFP 프로토콜을 이용할 것이다.

*해본 결과 SMB에선 타임머신이 동작하지 않는다. AFP로 접속해야한다.

 

우분투에서 AFP를 제공하는건 netatalk라는 프로그램이다. 설치해보자.

 

1. 의존성 패키지 설치

  • build-essential
  • libevent-dev (used by netatalk(8))
  • libssl-dev (DHX auth aka DHCAST128)
  • libgcrypt-dev (DHX2 auth)
  • libkrb5-dev (Kerberos V auth)
  • libpam0g-dev (PAM)
  • libwrap0-dev (TCP Wrapper)
  • libdb-dev (dbd CNID backend)
  • libtdb-dev (tdb CNID backend)
  • libmysqlclient-dev (mysql CNID backend)
  • avahi-daemon (Bonjour support)
  • libavahi-client-dev (Bonjour support)
  • libacl1-dev (ACL support)
  • libldap2-dev (enhanced ACL support)
  • libcrack2-dev (password ckeck)
  • systemtap-sdt-dev (DTrace-compatible)
  • libdbus-1-dev (used by afpstats command)
  • libdbus-glib-1-dev (used by afpstats command)
  • libglib2.0-dev (used by afpstats command)
  • libio-socket-inet6-perl (used by asip-status.pl command)
  • tracker (used for spotlight indexing)
  • libtracker-sparql-2.0-dev (used for spotlight indexing) (version number may differ)
  • libtracker-miner-2.0-dev (used for spotlight indexing) (version number may differ)

이렇게 많은 패키지를 요구한다. 설치하면 된다. 설치되있으면 apt가 알아서 걸러준다.

sudo apt install -y build-essential libevent-dev libssl-dev libgcrypt-dev libkrb5-dev libpam0g-dev \
libwrap0-dev libdb-dev libtdb-dev libmysqlclient-dev avahi-daemon libavahi-client-dev libacl1-dev \
libldap2-dev libcrack2-dev systemtap-sdt-dev libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev \
libio-socket-inet6-perl tracker libtracker-sparql-2.0-dev libtracker-miner-2.0-dev

2. 다운로드 and 압축 풀기

# 현시점 기준 최신 3.1.12
wget https://sourceforge.net/projects/netatalk/files/netatalk/3.1.12/netatalk-3.1.12.tar.bz2
tar xvf netatalk-3.1.12.tar.bz2
cd netatalk-3.1.12

3. Configure & Make & Install

여기서 잠깐! 혹시 본인이 아나콘다 환경이라면?

아나콘다가 뭔지 잘 모르겠다면 본인 콘솔 맨 앞에 (base) 가 붙어있는지 확인하면 된다.

 

configure 전에 환경변수 PATH(echo $PATH로 확인)에 아나콘다 경로를 빼줘야한다.

export PATH를 이용해서 임시로 빼주고 끝나면 source ~/.bashrc로 복구해주면 된다.

 

문제 없다면 configure을 진행한다.

# 출처: http://netatalk.sourceforge.net/wiki/index.php/Install_Netatalk_3.1.12_on_Ubuntu_18.04_Bionic
# 18.04로 진행해도 될지 궁금하겠지만... 20.04 문서가 안나왔는걸...
./configure \
        --with-init-style=debian-systemd \
        --without-libevent \
        --without-tdb \
        --with-cracklib \
        --enable-krbV-uam \
        --with-pam-confdir=/etc/pam.d \
        --with-dbus-daemon=/usr/bin/dbus-daemon \
        --with-dbus-sysconf-dir=/etc/dbus-1/system.d \
        --with-tracker-pkgconfig-version=2.0

 

여기서 잠깐! 본인의 MySQL 버전을 확인해준다.

 

make 전에 MySQL 버전이 8.0 이상인 경우

sed -i 's/my_bool/bool/' libatalk/cnid/mysql/cnid_mysql.c 

로 버그를 해결해준다. 물론 직접 에러 보고 들어가 수정해도 된다.

 

make 해주고 여기까지 문제없었다면 sudo make install 해주면 끝!

make
sudo make install

참고로 진행중 문제가 생기거나 실수가 있었다면 make clean을 쓰면 되지만 configure부터 꼬였다면 그냥 지우고 압축푸터 다시 푸는걸 추!천!

4. AFP(Apple Filing Protocol=유사SMB) 설정

vim /usr/local/etc/afp.conf 가서 설정해주면 된다.

; 맨 앞 세미콜론(;)은 주석 처리
; [별칭]
; path = /원하는경로
; time machine = yes/no(타임머신 해당여부)

ex.
[My Time Machine Volume]
path = /path/to/backup
time machine = yes

5. 데몬 부팅시 시작 등록 and 바로 시작

# 부팅시 자동 시작
sudo systemctl enable avahi-daemon
sudo systemctl enable netatalk

# 데몬 시작
sudo systemctl start avahi-daemon
sudo systemctl start netatalk

5-1. UFW를 사용하는 경우, 방화벽 해제

# AFP의 포트는 TCP 548번
sudo ufw allow 548/tcp

# 방화벽 리로드
sudo ufw reload

6. 이제 맥북가서 SMB 연결하듯 연결하고 타임머신 세팅하면 끝

반응형
자바스크립트를 활성화시켜주세요!
[활성화]