CentOS8で構築する自宅サーバ:ファイルサーバの構築 その2

今回は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 Unlimited入会で無料で読めます!

コメント