Installation netatalk-2.1.3 unter Opensolaris

Die eigentliche Installation verläuft problemlos, es benötigt jedoch ein paar Vorbereitungen und die Usability kann durch Multicast DNS stark verbessert werden. So sehen die OS X-Clients den Server direkt im Finder. Beginnen wir mit den Vorbereitungen…

System vorbereiten
Opensolaris hat standardmässig die GNU Entwicklungs-Tools nicht installiert. Dies kann mit einem Befehl nachgeholt werden:
pfexec pkg install gcc-dev

Installation der BDB
Ohne BDB lässt sich netatalk nicht kompilieren. Die Version 4.8.30 funktioniert einwandfrei und kann von Oracle heruntergeladen werden.

Die Installation ist ein wenig speziell:
cd build_unix
../dist/configure --prefix=/usr/local
make -j5
pfexec make install

Installation netatalk
Bei älteren Opensolaris-Versionen muss möglicherweise noch PAM deaktiviert werden. Unter r134 ist dies nicht mehr nötig:
./configure --sysconfdir=/etc
make -j5
pfexec make install

Multicast DNS einrichten
Zum starten benötigen wir ein kurzes Shell-Script, das unter /lib/svc/method/dnssd-afp gespeichert wird.

#!/sbin/sh
#
# Registers the AFP daemon with dns-sd.
#
/usr/bin/dns-sd -R "$(hostname)" _afpovertcp._tcp local 548 &
/usr/bin/dns-sd -R "$(hostname)" _device-info._tcp. local 548 model=Xserve &
# Sleep to ensure service has enough time to start up,
# otherwise SMF will timeout waiting for it to be ready.
sleep 5

pfexec chown root:bin /lib/svc/method/dnssd-afp
pfexec chmod +x /lib/svc/method/dnssd-afp

Diese XML-Datei kann später in svc importiert werden und muss als /var/svc/manifest/site/dnssd-afp.xml abgelegt werden.

<?xml version="1.0"?>
<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
<service_bundle type="manifest" name="dnssd-afp">
  <service
     name="site/dnssd-afp"
     type="service"
     version="1">

    <single_instance/>

    <dependency
       name="filesystem-local"
       grouping="require_all"
       restart_on="none"
       type="service">
      <service_fmri value="svc:/system/filesystem/local:default"/>
    </dependency>

   <dependency
       name="dns-multicast"
       grouping="require_all"
       restart_on="none"
       type="service">
      <service_fmri value="svc:/network/dns/multicast:default"/>
    </dependency>

    <exec_method
       type="method"
       name="start"
       exec="/lib/svc/method/dnssd-afp"
       timeout_seconds="60">
      <method_context>
        <method_credential user="root" group="root"/>
      </method_context>
    </exec_method>

    <exec_method
       type="method"
       name="stop"
       exec=":kill"
       timeout_seconds="60">
    </exec_method>

    <instance name="default" enabled="false" />

    <stability value="Unstable" />

    <template>
      <common_name>
        <loctext xml:lang="C">
          dns-sd registration of afp daemon
        </loctext>
      </common_name>
      <documentation>
        <manpage title="dns-sd" section="1M" manpath="/usr/man"/>
      </documentation>
    </template>
  </service>
</service_bundle>

Dieses Script benötigt Unterstützung vom System Multicast Service. Dieser muss daher erst aktiviert werden mit:
pfexec svcadm enable multicast

Nun kann die oben erstellte XML-Datei importiert und dann der neue Service gestartet werden:
pfexec svccfg -v import /var/svc/manifest/site/dnssd-afp.xml
pfexec svcadm enable dnssd-afp

Nun sollte der Service in Betrieb sein und der Opensolaris Server im Finder von Mac OS X-Clients auftauchen. Falls nicht, sollte der Inhalt der Logdatei ‚/var/svc/log/site-dnssd-afp:default.log‘ geprüft werden.

Quellen
Caffeinated: Making netatalk discoverable in OpenSolaris

Dieser Beitrag wurde unter OpenSolaris, OpenSolaris Fileserver veröffentlicht. Setze ein Lesezeichen auf den Permalink.
Warning: count(): Parameter must be an array or an object that implements Countable in /home/httpd/vhosts/blog-it.ch/httpdocs/wp-includes/class-wp-comment-query.php on line 405