Mit “meta” getaggte Einträge von rainboxx - Matthias Dietrich
Als ich demletzt ein bereits auf dem Blog angekündigtes Modul für den Upload zum CPAN vorbereitete, bin ich auf ein "Problem" im Zusammenhang mit Mac OS X gestoßen. Um was es geht und wie es gelöst werden kann, folgt hier...
Manche Betriebssysteme legt verschiedenste Metadaten für Ordner und Dateien in versteckten Dateien an. Während Mac OS X für fast jede Datei und jeden Ordner eine zusätzliche Datei angelegt wird, macht Windows das nicht ganz so extrem und legt nur für jeden Ordner eine Datei an, plus eine Datei mit Vorschaubildern des Ordners. Standardmäßig sind solche Dateien für den User versteckt, so dass sie weder stören noch deren vorhandensein bemerkt wird. Erst wenn auf Ordner und Dateien im Netzwerk zugegriffen werden, auf die auch andere Betriebssysteme zugreifen, werden die Dateien bemerkt - oder die entsprechenden Optionen für das Anzeigen von versteckten Dateien gesetzt werden.
Wo liegt also das Problem, wenn man die Dateien auf dem eigenen System nicht sieht? Auf fremden Systemen (z.B. über Netzwerkfreigaben) sind sie nur irritierend, ein Problem gibt es dort meistens nicht. Beim CPAN allerdings gibt es Probleme, auch bei so manch anderen Diensten kann das gut passieren.
Warum ist das ein Problem?
Das CPAN ist ein Archiv von ettlichen wiederverwendbaren Perl-Modulen verschiedenster Autoren. Diese Module durchlaufen automatisierte Tests und müssen deshalb bestimmte Kriterien erfüllen: Metainformationen wie Abhängigkeiten, Lizenz, Autor und weiteres müssen enthalten sein und das Modul muss als komprimiertes Tar- oder Zip-Archiv mit einer entsprechenden Ordner- und Dateistruktur hochgeladen werden. Ist dies nicht der Fall, wird die hochgeladene Version des Moduls nicht aufgenommen.
Eine der Bedinungen zur Ordnerstruktur ist, dass im Archiv ein einziger Ordner vorhanden sein darf, welcher alle weiteren Dateien enthält. Und hier kommt das Problem: da Mac OS X für den obersten Ordner dieser Struktur Metadaten auf gleicher Ebene anlegt, enthält das Archiv nicht nur den Ordner mit dem eigentlichen Inhalt, sondern auch die Metadaten. Das verstößt gegen die Richtlinien.
Lösung
Im Internet ist an verschiedenen Stellen die Rede von einem kleinen, bei Mac OS X mitgelieferten Commandline-Tool Namens
In meinem Fall geholfen hat das Setzen einer Umgebungsvariable Namens
Diese Umgebungsvariable bewirkt, dass alle ._*- bzw. Metadateien nicht mitkopiert werden und erzeugt ein "reines" Archiv, ohne lästige Metadaten. Um nicht immer bei jedem Erstellen eines solchen Tar-Archivs oder anderen Operationen an das Setzen der Variable zu denken, kann sie auch in der
Versteckte Metadateien auf Netzlaufwerken unterbinden
Seit Mac OS X 10.4 gibt es eine offizielle Beschreibung von Apple, mit welcher das Anlegen von Metadateien auf Netzlaufwerken generel unterbunden werden kann. Dazu öffnet man die Konsole und gibt folgenden Befehl ein:
Die Originalbeschreibung zum Vorgehen findet man hier (englisch): http://support.apple.com/kb/HT1629
Manche Betriebssysteme legt verschiedenste Metadaten für Ordner und Dateien in versteckten Dateien an. Während Mac OS X für fast jede Datei und jeden Ordner eine zusätzliche Datei angelegt wird, macht Windows das nicht ganz so extrem und legt nur für jeden Ordner eine Datei an, plus eine Datei mit Vorschaubildern des Ordners. Standardmäßig sind solche Dateien für den User versteckt, so dass sie weder stören noch deren vorhandensein bemerkt wird. Erst wenn auf Ordner und Dateien im Netzwerk zugegriffen werden, auf die auch andere Betriebssysteme zugreifen, werden die Dateien bemerkt - oder die entsprechenden Optionen für das Anzeigen von versteckten Dateien gesetzt werden.
Wo liegt also das Problem, wenn man die Dateien auf dem eigenen System nicht sieht? Auf fremden Systemen (z.B. über Netzwerkfreigaben) sind sie nur irritierend, ein Problem gibt es dort meistens nicht. Beim CPAN allerdings gibt es Probleme, auch bei so manch anderen Diensten kann das gut passieren.
Warum ist das ein Problem?
Das CPAN ist ein Archiv von ettlichen wiederverwendbaren Perl-Modulen verschiedenster Autoren. Diese Module durchlaufen automatisierte Tests und müssen deshalb bestimmte Kriterien erfüllen: Metainformationen wie Abhängigkeiten, Lizenz, Autor und weiteres müssen enthalten sein und das Modul muss als komprimiertes Tar- oder Zip-Archiv mit einer entsprechenden Ordner- und Dateistruktur hochgeladen werden. Ist dies nicht der Fall, wird die hochgeladene Version des Moduls nicht aufgenommen.
Eine der Bedinungen zur Ordnerstruktur ist, dass im Archiv ein einziger Ordner vorhanden sein darf, welcher alle weiteren Dateien enthält. Und hier kommt das Problem: da Mac OS X für den obersten Ordner dieser Struktur Metadaten auf gleicher Ebene anlegt, enthält das Archiv nicht nur den Ordner mit dem eigentlichen Inhalt, sondern auch die Metadaten. Das verstößt gegen die Richtlinien.
Lösung
Im Internet ist an verschiedenen Stellen die Rede von einem kleinen, bei Mac OS X mitgelieferten Commandline-Tool Namens
dot_clean, welches einen Zielordner rekursiv durchgeht und alle ._*-Dateien entfernt. Dieses soll gegen ein Problem in dieser Art helfen. Ich selbst habe es nicht verwendet und bin mir nicht sicher, ob es das Problem wirklich behebt. Denn ein manuelles Löschen der Dateien hatte in meinem Fall nichts gebracht, denn sie wurden sofort angelegt, als ich das Archiv (per Commandline) zusammenpacken wollte.In meinem Fall geholfen hat das Setzen einer Umgebungsvariable Namens
COPY_EXTENDED_ATTRIBUTES_DISABLE:$ COPY_EXTENDED_ATTRIBUTES_DISABLE=true tar -czvf filename.tar.gz directory.profile oder .bashrc gesetzt werden:export COPY_EXTENDED_ATTRIBUTES_DISABLE=trueSeit Mac OS X 10.4 gibt es eine offizielle Beschreibung von Apple, mit welcher das Anlegen von Metadateien auf Netzlaufwerken generel unterbunden werden kann. Dazu öffnet man die Konsole und gibt folgenden Befehl ein:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Feed dieses Blogs abonnieren
Neueste Kommentare
Philipp on Schade: kein erweiterter Heise-Newsfeed: Hi, ich wü
Ano Nym on Schade: kein erweiterter Heise-Newsfeed: Ich würde
Jonas on Schade: kein erweiterter Heise-Newsfeed: Ich wäre a
mots on Schade: kein erweiterter Heise-Newsfeed: Ich würd d
Bastian on Zwei Jahre ist es her...: Hej, willk
Heiko W. Rupp on PostgreSQL und Volltextsuche: Im letzten
Josef on Schade: kein erweiterter Heise-Newsfeed: Würde mich
Martin on Schade: kein erweiterter Heise-Newsfeed: ich reihe
Guido on Schade: kein erweiterter Heise-Newsfeed: Dich hätte