今回はMac用のファイルサーバ netatalkをインストールします。こちらはパッケージがないので苦労しました。
20年ぐらい前に使っていたMacOS8.6環境を仮想マシンで動かしているので、必要なんです。
netatalkは、ソースからコンパイルしなくてはいけないのですが、今どきのMacはsambaでファイル共有するのがふつーみたいで、netatalkの情報が少なくなっていました。
一番頼りになるHATさんのページをアーカイブから掘り起こして、参考にさせていただきました!
必要パッケージのインストール
まずは、パッケージをインストールするのに必要なリポジトリを有効化します。
[root@ace netatalk-3.1.12]# vi /etc/yum.repos.d/CentOS-PowerTools.repo
[root@ace netatalk-3.1.12]# cat /etc/yum.repos.d/CentOS-PowerTools.repo
# CentOS-PowerTools.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client. You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the
# remarked out baseurl= line instead.
#
#
[PowerTools]
name=CentOS-$releasever - PowerTools
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=PowerTools&infra=$infra
#baseurl=http://mirror.centos.org/$contentdir/$releasever/PowerTools/$basearch/os/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
[root@ace netatalk-3.1.12]#
CentOS-PowerToolsリポジトリは開発用パッケージ等が入っています。enabled=0からenabled=1に変更ですね。
[root@ace netatalk-3.1.12]# dnf install libdb-devel libgcrypt-devel pam-devel avahi-devel \
openssl-devel libacl-devel openldap-devel libevent-devel libtdb-devel cracklib-devel \
dbus-devel dbus-glib-devel systemtap-sdt-devel libtool
CentOS-8 - PowerTools 2.0 MB/s | 2.0 MB 00:01
メタデータの期限切れの最終確認: 0:00:01 時間前の 2020年03月09日 00時57分03秒 に実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
dbus-devel x86_64 1:1.12.8-9.el8 AppStream 67 k
dbus-glib-devel x86_64 0.110-2.el8 AppStream 76 k
libdb-devel x86_64 5.3.28-37.el8 AppStream 46 k
libevent-devel x86_64 2.1.8-5.el8 AppStream 104 k
libtool x86_64 2.4.6-25.el8 AppStream 709 k
systemtap-sdt-devel x86_64 4.1-6.el8 AppStream 80 k
libacl-devel x86_64 2.2.53-1.el8 BaseOS 79 k
libgcrypt-devel x86_64 1.8.3-4.el8 BaseOS 149 k
libtdb-devel x86_64 1.3.18-2.el8 BaseOS 25 k
openldap-devel x86_64 2.4.46-11.el8_1 BaseOS 811 k
openssl-devel x86_64 1:1.1.1c-2.el8 BaseOS 2.3 M
pam-devel x86_64 1.3.1-4.el8 BaseOS 208 k
avahi-devel x86_64 0.7-19.el8 PowerTools 38 k
cracklib-devel x86_64 2.9.6-15.el8 PowerTools 25 k
依存関係のインストール:
autoconf noarch 2.69-27.el8 AppStream 710 k
automake noarch 1.16.1-6.el8 AppStream 713 k
cmake-filesystem x86_64 3.11.4-3.el8 AppStream 40 k
perl-Digest noarch 1.17-395.el8 AppStream 27 k
perl-Digest-MD5 x86_64 2.55-396.el8 AppStream 37 k
perl-Net-SSLeay x86_64 1.88-1.el8 AppStream 379 k
perl-Thread-Queue noarch 3.13-1.el8 AppStream 24 k
perl-URI noarch 1.73-3.el8 AppStream 116 k
perl-libnet noarch 3.11-3.el8 AppStream 121 k
avahi x86_64 0.7-19.el8 BaseOS 282 k
cyrus-sasl x86_64 2.1.27-1.el8 BaseOS 96 k
cyrus-sasl-devel x86_64 2.1.27-1.el8 BaseOS 128 k
emacs-filesystem noarch 1:26.1-5.el8 BaseOS 69 k
keyutils-libs-devel x86_64 1.5.10-6.el8 BaseOS 48 k
krb5-devel x86_64 1.17-9.el8 BaseOS 548 k
libattr-devel x86_64 2.4.48-3.el8 BaseOS 34 k
libcom_err-devel x86_64 1.44.6-3.el8 BaseOS 38 k
libgpg-error-devel x86_64 1.31-1.el8 BaseOS 64 k
libkadm5 x86_64 1.17-9.el8 BaseOS 184 k
libselinux-devel x86_64 2.9-2.1.el8 BaseOS 199 k
libsepol-devel x86_64 2.9-1.el8 BaseOS 86 k
libverto-devel x86_64 0.3.0-5.el8 BaseOS 18 k
m4 x86_64 1.4.18-7.el8 BaseOS 223 k
pcre2-devel x86_64 10.32-1.el8 BaseOS 605 k
pcre2-utf16 x86_64 10.32-1.el8 BaseOS 228 k
pcre2-utf32 x86_64 10.32-1.el8 BaseOS 220 k
perl-Carp noarch 1.42-396.el8 BaseOS 30 k
perl-Data-Dumper x86_64 2.167-399.el8 BaseOS 58 k
perl-Encode x86_64 4:2.97-3.el8 BaseOS 1.5 M
perl-Errno x86_64 1.28-416.el8 BaseOS 76 k
perl-Exporter noarch 5.72-396.el8 BaseOS 34 k
perl-File-Path noarch 2.15-2.el8 BaseOS 38 k
perl-File-Temp noarch 0.230.600-1.el8 BaseOS 63 k
perl-Getopt-Long noarch 1:2.50-4.el8 BaseOS 63 k
perl-HTTP-Tiny noarch 0.074-1.el8 BaseOS 58 k
perl-IO x86_64 1.38-416.el8 BaseOS 141 k
perl-MIME-Base64 x86_64 3.15-396.el8 BaseOS 31 k
perl-PathTools x86_64 3.74-1.el8 BaseOS 90 k
perl-Pod-Escapes noarch 1:1.07-395.el8 BaseOS 20 k
perl-Pod-Perldoc noarch 3.28-396.el8 BaseOS 86 k
perl-Pod-Simple noarch 1:3.35-395.el8 BaseOS 213 k
perl-Pod-Usage noarch 4:1.69-395.el8 BaseOS 34 k
perl-Scalar-List-Utils x86_64 3:1.49-2.el8 BaseOS 68 k
perl-Socket x86_64 4:2.027-3.el8 BaseOS 59 k
perl-Storable x86_64 1:3.11-3.el8 BaseOS 98 k
perl-Term-ANSIColor noarch 4.06-396.el8 BaseOS 46 k
perl-Term-Cap noarch 1.17-395.el8 BaseOS 23 k
perl-Text-ParseWords noarch 3.30-395.el8 BaseOS 18 k
perl-Text-Tabs+Wrap noarch 2013.0523-395.el8 BaseOS 24 k
perl-Time-Local noarch 1:1.280-1.el8 BaseOS 34 k
perl-Unicode-Normalize x86_64 1.25-396.el8 BaseOS 82 k
perl-constant noarch 1.33-396.el8 BaseOS 25 k
perl-interpreter x86_64 4:5.26.3-416.el8 BaseOS 6.3 M
perl-libs x86_64 4:5.26.3-416.el8 BaseOS 1.6 M
perl-macros x86_64 4:5.26.3-416.el8 BaseOS 72 k
perl-parent noarch 1:0.237-1.el8 BaseOS 20 k
perl-podlators noarch 4.11-1.el8 BaseOS 118 k
perl-threads x86_64 1:2.21-2.el8 BaseOS 61 k
perl-threads-shared x86_64 1.58-2.el8 BaseOS 48 k
python3-pyparsing noarch 2.1.10-7.el8 BaseOS 142 k
xml-common noarch 0.6.3-50.el8 BaseOS 39 k
弱い依存関係のインストール:
man-pages-overrides noarch 8.1.0.0-2.el8 AppStream 17 k
perl-IO-Socket-IP noarch 0.39-5.el8 AppStream 47 k
perl-IO-Socket-SSL noarch 2.066-3.el8 AppStream 297 k
perl-Mozilla-CA noarch 20160104-7.el8 AppStream 15 k
man-pages x86_64 4.15-6.el8 BaseOS 5.9 M
トランザクションの概要
================================================================================
インストール 80 パッケージ
ダウンロードサイズの合計: 27 M
インストール済みのサイズ: 64 M
これでよろしいですか? [y/N]: y
:
省略
:
完了しました!
[root@ace netatalk-3.1.12]#
一応、パッケージの説明をしておくと
- 必須パッケージ libdb-devel libgcrypt-devel
- 認証で必要 pam-devel openssl-devel cracklib-devel
- Bonjourのためデーモン avahi-devel
- ACL関連ライブラリやOpenLDAP libacl-devel openldap-devel
- libeventはOSをのを使う libevent-devel
- tdbもOSをのを使う libtdb-devel
- D-Bus dbus-devel dbus-glib-devel
- DTrace systemtap-sdt-devel
- インストール時に必要 libtool
です。
ソースをゲットして、configure
[root@ace ~]# cd /usr/local/src
[root@ace src]# wget https://sourceforge.net/projects/netatalk/files/netatalk/3.1.12/netatalk-3.1.12.tar.gz
--2020-03-01 23:41:04-- https://sourceforge.net/projects/netatalk/files/netatalk/3.1.12/netatalk-3.1.12.tar.gz
sourceforge.net (sourceforge.net) をDNSに問いあわせています... 216.105.38.13
:
省略
:
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 2618209 (2.5M) [application/x-gzip]
`netatalk-3.1.12.tar.gz' に保存中
netatalk-3.1.12.tar 100%[===================>] 2.50M 8.74MB/s 時間 0.3s
2020-03-01 23:41:06 (8.74 MB/s) - `netatalk-3.1.12.tar.gz' へ保存完了 [2618209/2618209]
[root@ace src]#
[root@ace src]# tar xfz netatalk-3.1.12.tar.gz
[root@ace src]# cd netatalk-3.1.12
[root@ace netatalk-3.1.12]#
いつものように/usr/local/srcに移動して、公式サイトからソースをgetし、展開します。
[root@ace netatalk-3.1.12]# ./configure --help
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
--program-suffix=SUFFIX append SUFFIX to installed program names
--program-transform-name=PROGRAM run sed PROGRAM on installed program names
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-silent-rules less verbose build output (undo: "make V=1")
--disable-silent-rules verbose build output (undo: "make V=0")
--disable-maintainer-mode
disable make rules and dependencies not useful (and
sometimes confusing) to the casual installer
--enable-dependency-tracking
do not reject slow dependency extractors
--disable-dependency-tracking
speeds up one-time build
--enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS]
optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds)
--disable-largefile omit support for large files
--enable-rpath enable RPATH/RUNPATH (default: $default_rpath)
--enable-afs enable AFS support
--enable-debug enable verbose debug code
--enable-debugging disable SIGALRM timers and DSI tickles (eg for debugging with gdb/dbx/...)
--enable-quota Turn on quota support (default=auto)
--enable-zeroconf[=DIR] enable Zeroconf support [auto]
--disable-tcp-wrappers disable TCP wrappers support
--disable-shell-check disable checking for a valid shell
--enable-pgp-uam enable build of PGP UAM module
--enable-krbV-uam enable build of Kerberos V UAM module
--enable-overwrite overwrite configuration files during installation
--disable-sendfile disable sendfile syscall
--enable-developer whether to enable developer build (ABI checking)
--enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
both]
--with-aix-soname=aix|svr4|both
shared library versioning (aka "SONAME") variant to
provide on AIX, [default=aix].
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
--with-sysroot[=DIR] Search for dependent libraries within DIR (or the
compiler's sysroot if not specified).
--with-pkgconfdir=DIR package specific configuration in DIR
[$sysconfdir]
--with-message-dir=PATH path to server message files [$localstatedir/netatalk/msg/]
--with-cracklib[=DICT] enable/set location of cracklib dictionary [no]
--with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include [default=auto]
--with-cnid-dbd-backend build CNID with Database Daemon Data Store [yes]
--with-cnid-cdb-backend build CNID with Concurrent BDB Data Store [no]
--with-cnid-last-backend build LAST CNID scheme [yes]
--with-cnid-tdb-backend build TDB CNID scheme [yes]
--with-mysql-config=PATH
Path to mysql-config binary (default: mysql_config)
--with-cnid-default-backend=val set default DID scheme [dbd]
--with-pam[=PATH] specify path to PAM installation [auto]
--with-pam-confdir=PATH Path to PAM config dir (default:
${sysconfdir}/pam.d)
--with-shadow enable shadow password support [auto]
--with-init-style use OS specific init config [redhat-sysv|redhat-systemd|suse-sysv|suse-systemd|gentoo-openrc|gentoo-systemd|netbsd|debian-sysv|debian-systemd|solaris|openrc|systemd]
--with-init-dir=PATH path to OS specific init directory
--with-uams-path=PATH path to UAMs [$libdir/netatalk/]
--with-libgcrypt-dir=PATH
path where LIBGCRYPT is installed (optional). Must
contain lib and include dirs.
--with-ssl-dir=PATH specify path to OpenSSL installation (must contain
lib and include dirs)
--with-bdb=PATH specify path to Berkeley DB installation[auto]
--with-gssapi[=PATH] path to GSSAPI for Kerberos V UAM [auto]
--with-kerberos Kerberos 5 support (default=auto)
--with-ldap[=PATH] LDAP support (default=auto)
--with-acls Include ACL support (default=auto)
--with-libevent whether to use the bundled libevent (default: yes)
--with-libevent-header path to libevent header files
--with-libevent-lib path to libevent library
--with-tdb whether to use the bundled tdb (default: yes)
--with-tracker-pkgconfig-version=VERSION
Version suffix of the Tracker SPARQL pkg-config
(default: 0.12)
--with-tracker-prefix=PATH
Prefix of Tracker (default: none)
--with-tracker-install-prefix=PATH
Install prefix for Tracker (default: none)
--with-dbus-daemon=PATH Path to DBus daemon (default: /bin/dbus-daemon)
--with-dtrace Enable dtrace probes (default: enabled if dtrace
found)
--with-afpstats Enable AFP statistics via dbus (default: enabled if
dbus found)
--with-dbus-sysconf-dir=PATH
Path to dbus system bus security configuration
directory (default: ${sysconfdir}/dbus-1/system.d/)
--with-lockfile=PATH Path of netatalk lockfile
--with-docbook Path to Docbook XSL directory
Some influential environment variables:
CC C compiler command
CFLAGS C compiler flags
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
you have headers in a nonstandard directory <include dir>
LT_SYS_LIBRARY_PATH
User-defined run-time library search path.
CPP C preprocessor
YACC The `Yet Another Compiler Compiler' implementation to use.
Defaults to the first program found out of: `bison -y', `byacc',
`yacc'.
YFLAGS The list of arguments that will be passed by default to $YACC.
This script will default YFLAGS to the empty string to avoid a
default value of `-d' given by some make applications.
MYSQL_CFLAGS
C compiler flags for MySQL, overriding checks
MYSQL_LIBS linker flags for MySQL, overriding checks
PKG_CONFIG path to pkg-config utility
PKG_CONFIG_PATH
directories to add to pkg-config's search path
PKG_CONFIG_LIBDIR
path overriding pkg-config's built-in search path
AVAHI_CFLAGS
C compiler flags for AVAHI, overriding pkg-config
AVAHI_LIBS linker flags for AVAHI, overriding pkg-config
AVAHI_TPOLL_CFLAGS
C compiler flags for AVAHI_TPOLL, overriding pkg-config
AVAHI_TPOLL_LIBS
linker flags for AVAHI_TPOLL, overriding pkg-config
TDB_CFLAGS C compiler flags for TDB, overriding pkg-config
TDB_LIBS linker flags for TDB, overriding pkg-config
TRACKER_CFLAGS
C compiler flags for TRACKER, overriding pkg-config
TRACKER_LIBS
linker flags for TRACKER, overriding pkg-config
DBUS_CFLAGS C compiler flags for DBUS, overriding pkg-config
DBUS_LIBS linker flags for DBUS, overriding pkg-config
DBUS_GLIB_CFLAGS
C compiler flags for DBUS_GLIB, overriding pkg-config
DBUS_GLIB_LIBS
linker flags for DBUS_GLIB, overriding pkg-config
DBUS_GTHREAD_CFLAGS
C compiler flags for DBUS_GTHREAD, overriding pkg-config
DBUS_GTHREAD_LIBS
linker flags for DBUS_GTHREAD, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
[root@ace netatalk-3.1.12]#
configureのヘルプで、オプションを確認します。最終的に前掲したHATさんのページを参考に以下のようなオプションにしました。
./configure \
--with-init-style=redhat-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
結果は
Compilation summary:
CPPFLAGS = -I$(top_srcdir)/include -I$(top_builddir)/include -I$(top_srcdir)
CFLAGS = -D_U_="__attribute__((unused))" -g -O2
LIBS = -lcrack
PTHREADS:
LIBS =
CFLAGS = -pthread
SSL:
LIBS = -L/usr/lib64 -lcrypto
CFLAGS = -I/usr/include/openssl
LIBGCRYPT:
LIBS = -lgcrypt -ldl -lgpg-error
CFLAGS =
PAM:
LIBS = -lpam
CFLAGS =
WRAP:
LIBS =
CFLAGS =
BDB:
LIBS = -L/usr/lib64 -ldb-5.3
CFLAGS =
GSSAPI:
LIBS = -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err
CFLAGS =
ZEROCONF:
LIBS = -lavahi-common -lavahi-client
CFLAGS = -D_REENTRANT
LDAP:
LIBS = -lldap
CFLAGS =
LIBEVENT:
LIBS =
CFLAGS =
TDB:
LIBS = -ltdb
CFLAGS =
Configure summary:
INIT STYLE:
redhat-systemd
AFP:
Extended Attributes: ad | sys
ACL support: yes
Spotlight: no
CNID:
backends: dbd last tdb
UAMS:
DHX (PAM SHADOW)
DHX2 (PAM SHADOW)
RANDNUM (afppasswd)
Kerberos V
clrtxt (PAM SHADOW)
guest
Options:
Zeroconf support: yes
tcp wrapper support: no
quota support: no
valid shell check: yes
cracklib support: yes
ACL support: auto
Kerberos support: yes
LDAP support: yes
AFP stats via dbus: yes
dtrace probes: yes
Paths:
Netatalk lockfile: /var/lock/netatalk
init directory: /usr/lib/systemd/system
dbus system directory: /etc/dbus-1/system.d
pam config directory: /etc/pam.d
Documentation:
Docbook: no
[root@ace netatalk-3.1.12]#
となりました。できるだけ機能を入れたのですが、
- tcp wrapperはCentOS8からなくなってしまったので、使用しない。
- Spotlight機能はtracker開発用パッケージがないため、使用しない。
- quotaも開発用パッケージがないため、使用しない。
と、なっています。ここらへんは使わないので、問題ないです。
コンパイルとインストール
[root@ace netatalk-3.1.12]# make
make all-recursive
make[1]: ディレクトリ '/usr/local/src/netatalk-3.1.12' に入ります
Making all in include
:
省略
:
make[1]: ディレクトリ '/usr/local/src/netatalk-3.1.12' から出ます
[root@ace netatalk-3.1.12]#
[root@ace netatalk-3.1.12]#
[root@ace netatalk-3.1.12]#
[root@ace netatalk-3.1.12]# make install
Making install in include
make[1]: ディレクトリ '/usr/local/src/netatalk-3.1.12/include' に入ります
Making install in atalk
:
省略
:
make[1]: ディレクトリ '/usr/local/src/netatalk-3.1.12' から出ます
[root@ace netatalk-3.1.12]#
特にエラーなくmakeとmake installは終了しました。
設定ファイルの編集
[root@ace netatalk-3.1.12]# cp -p /usr/local/etc/afp.conf /usr/local/etc/afp.conff.orig
[root@ace netatalk-3.1.12]# vi /usr/local/etc/afp.conf.orig
[root@ace netatalk-3.1.12]# cat /usr/local/etc/afp.conf
;
; Netatalk 3.x configuration file
;
[Global]
; Global server settings
mimic model = RackMac
vol preset = my default values
mac charset = MAC_JAPANESE
uam list = uams_cleartxt.so uams_randnum.so uams_dhx.so uams_dhx2.so
log file = /var/log/netatalk.log
afpstats = yes
[my default values]
ea = samba
file perm = 0644
directory perm = 0755
[Homes]
basedir regex = /home
path = public
[Public]
path = /var/ftp/pub
; [Homes]
; basedir regex = /xxxx
; [My AFP Volume]
; path = /path/to/volume
; [My Time Machine Volume]
; path = /path/to/backup
; time machine = yes
[root@ace netatalk-3.1.12]#
設定ファイルを編集します。各ユーザのホームディレクトリとftpの共有フォルダを見えるようにしてみました。
自動起動設定
[root@ace netatalk-3.1.12]# systemctl enable avahi-daemon
Created symlink /etc/systemd/system/dbus-org.freedesktop.Avahi.service → /usr/lib/systemd/system/avahi-daemon.service.
Created symlink /etc/systemd/system/multi-user.target.wants/avahi-daemon.service → /usr/lib/systemd/system/avahi-daemon.service.
Created symlink /etc/systemd/system/sockets.target.wants/avahi-daemon.socket → /usr/lib/systemd/system/avahi-daemon.socket.
[root@ace netatalk-3.1.12]# systemctl start avahi-daemon
[root@ace netatalk-3.1.12]# systemctl enable netatalk
Created symlink /etc/systemd/system/multi-user.target.wants/netatalk.service → /usr/lib/systemd/system/netatalk.service.
[root@ace netatalk-3.1.12]# systemctl start netatalk
[root@ace netatalk-3.1.12]# systemctl status netatalk
● netatalk.service - Netatalk AFP fileserver for Macintosh clients
Loaded: loaded (/usr/lib/systemd/system/netatalk.service; enabled; vendor pr>
Active: active (running) since Mon 2020-03-09 01:14:39 JST; 6s ago
Docs: man:afp.conf(5)
man:netatalk(8)
man:afpd(8)
man:cnid_metad(8)
man:cnid_dbd(8)
http://netatalk.sourceforge.net/
Process: 6586 ExecStart=/usr/local/sbin/netatalk (code=exited, status=0/SUCCE>
Main PID: 6588 (netatalk)
Tasks: 4 (limit: 25027)
Memory: 4.4M
CGroup: /system.slice/netatalk.service
tq6588 /usr/local/sbin/netatalk
tq6589 /usr/local/sbin/afpd -d -F /usr/local/etc/afp.conf
mq6590 /usr/local/sbin/cnid_metad -d -F /usr/local/etc/afp.conf
3月 09 01:14:39 ace.lo.zeke.ne.jp systemd[1]: Starting Netatalk AFP fileserver>
3月 09 01:14:39 ace.lo.zeke.ne.jp systemd[1]: netatalk.service: Can't open PID>
3月 09 01:14:39 ace.lo.zeke.ne.jp systemd[1]: Started Netatalk AFP fileserver >
[root@ace netatalk-3.1.12]#
avahi-daemonとnetatalkの自動起動設定を行い、サービスを起動しました。ステータスで問題ないことを確認です!
afpstatsコマンドの修正
[root@ace ~]# cp -p /usr/local/bin/afpstats /usr/local/bin/afpstats.orig
[root@ace ~]# vi /usr/local/bin/afpstats
[root@ace ~]# diff /usr/local/bin/afpstats /usr/local/bin/afpstats.orig
1c1
< #!/usr/bin/env python3
---
> #!/usr/bin/env python
26c26
< print (name)
---
> print name
[root@ace ~]#
[root@ace ~]# afpstats
name: zeke, pid: 1537, logintime: Mar 12 01:06:33, state: active, volumes: zeke's home
[root@ace ~]#
afpstatsコマンドを打つとエラーが出ます。どうもpython3に対応していないようです。スクリプトを手修正です!
apple_dumpコマンドの修正
[root@ace ~]# dnf install perl-Math-BigInt
メタデータの期限切れの最終確認: 0:00:05 時間前の 2020年03月11日 22時12分34秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン Repo サイズ
================================================================================
インストール:
perl-Math-BigInt noarch 1:1.9998.11-7.el8 BaseOS 196 k
依存関係のインストール:
perl-Math-Complex noarch 1.59-416.el8 BaseOS 108 k
トランザクションの概要
================================================================================
インストール 2 パッケージ
ダウンロードサイズの合計: 303 k
インストール済みのサイズ: 765 k
これでよろしいですか? [y/N]: y
:
省略
:
完了しました!
[root@ace ~]#
[root@ace ~]# cp -p /usr/local/bin/apple_dump /usr/local/bin/apple_dump.orig
[root@ace ~]# vi /usr/local/bin/apple_dump
[root@ace ~]# diff /usr/local/bin/apple_dump /usr/local/bin/apple_dump.orig
52c52
< use Math::BigInt; # require perl >= 5.8
---
> use bigint; # require perl >= 5.8
[root@ace ~]#
apple_dumpコマンドもbigintライブラリがないため、エラーが出ます。コメントにある通りperl5.8から標準で入っているはずだけど、CentOS8には用意されていませんでした。
ライブラリをインストールして、コマンドは、それを見るように手修正です。
asip-status.plコマンド用のライブラリをインストール
[root@ace Macintosh]# dnf install perl-IO-Socket-INET6
メタデータの期限切れの最終確認: 0:15:20 時間前の 2020年03月11日 22時12分47秒 に 実施しました。
依存関係が解決しました。
================================================================================
パッケージ Arch バージョン リポジトリー サイズ
================================================================================
インストール:
perl-IO-Socket-INET6 noarch 2.72-12.el8 AppStream 33 k
依存関係のインストール:
perl-Socket6 x86_64 0.28-6.el8 AppStream 36 k
トランザクションの概要
================================================================================
インストール 2 パッケージ
ダウンロードサイズの合計: 69 k
インストール済みのサイズ: 110 k
これでよろしいですか? [y/N]: y
:
省略
:
完了しました!
[root@ace Macintosh]#
[root@ace Macintosh]# asip-status.pl ace
AFP reply from ace:548 via IPv6
Flags: 1 Cmd: 3 ID: 57005
Reply: DSIGetStatus
Request ID: 57005
Machine type: Netatalk3.1.12
AFP versions: AFP2.2,AFPX03,AFP3.1,AFP3.2,AFP3.3,AFP3.4
UAMs: DHX2,DHCAST128,2-Way Randnum exchange,Randnum exchange
Volume Icon & Mask: Yes
Flags:
SupportsCopyFile
SupportsServerMessages
SupportsServerSignature
SupportsTCP/IP
SupportsSrvrNotifications
SupportsOpenDirectory
SupportsUTF8Servername
SupportsUUIDs
SupportsExtSleep
SupportsSuperClient
Server name: ace
Signature:
85 fc 87 77 e8 8c 32 a0 c2 e9 a9 bf 66 23 61 f5 ...w..2.....f#a.
Network address: [2001:02c0:cd03:ca01:0000:0000:0000:0ace] (IPv6 address)
UTF8 Servername: ace
[root@ace Macintosh]#
asip-status.plを打ったらエラーが出たので、必要なperl-IO-Socket-INET6をインストールです!
動作確認
MacOS8.6!からつなげて、共有フォルダが見えることを確認しました。ファイルのコピーもしてみましたが、ちょっと不安定です。
MacOS10.13からつなげば問題なくファイルのコピーができることから、MacOS8.6の仮想マシン環境が悪いような気もします。
ちなみにVirtualBoxのWindowsXP仮想マシンの中で、SheepShaverを使ってMacOS8.6仮想マシンを起動するという、結構むちゃなことをしています。
epelでnetatalkのパッケージを作っているみたいなので、それがリリースされたら入れ替えて見たほうが良いですね!
お勧めのKindle本です!
コメント