Wie in diesem Beitrag diskutiert wurde #25881, beherrscht Windows ja keine Symlinks. Dadurch sind Leute mit einem Windows-Server (oder Heim-PC) automatisch auf das .zip Archiv angewiesen.
Aber das stimmt nur halb! Windows beherrscht keine "Symlinks" im Sinne von UNIX, aber das NTFS-Dateisystem erlaubt genau so symbolische Links. Unter Windows werden diese nur "Junctions" genannt.
Wozu das .tar.gz Archiv? Ganz einfach: Damit sind die "festen" Quelldateien von Typo3 in einem eigenen Verzeichnis. Und alles Spezifische zur Einrichtung, also z.B. lokale Extension, Templates und Inhalte sind in einem anderen Verzeichnis. Bringt Typo3 ein Update raus oder ihr wollt eure Distribution einfach mal mit einem anderen Source-Paket testen, dann bleibt das Distributionsverzeichnis unangetastet. Es muss lediglich ein Junction angepasst werden, nämlich der zu typo3_src.
Windows bietet aber von Haus aus kein Tool an, um solche Junctions zu erstellen. Deshalb zwei Wege:
1) Ihr ladet euch das Windows Resource Kit herunter. Nach der Installation steht unter C:\Programme\Windows Resource Kit\ die Datei "linkd.exe" zur Verfügung, die Junctions ermöglicht. Das WinResKit gibt's hier: http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en
2) Ihr spart euch den großen Download und weicht auf die Freeware von Sysinternals aus. Die Datei "junction.exe" kann man hier einzeln herunterladen: http://www.sysinternals.com/utilities/junction.html
Noch ein letzter Schritt: Da alle Symlinks beim Entpacken verloren gehen, müssen sie reproduziert werden. Bisher habe ich sowas immer mit einem PHP-Skript und der Funktion symlink() gemacht. Das funktioniert natürlich nur auf einem UNIX-Dateisystem. Hier die "broken symlinks", die es manuell herzustellen gilt. Vielleicht schreibt ja mal jemand eine Windows Batch-Datei dafür und postet sie hier.
<html>
<body>
<table border="">
<?php
$arrSymlinks = array();
$arrSymlink['dummy-3.8.0'] = array(
'typo3_src' => '../typo3_src-3.8.0',
'typo3' => 'typo3_src/typo3',
'tslib' => 'typo3_src/tslib',
't3lib' => 'typo3_src/t3lib',
'showpic.php' => 'tslib/showpic.php',
'media' => 'tslib/media',
'index.php' => 'tslib/index_ts.php'
);
$arrSymlink['typo3_src-3.8.0'] = array(
'fileadmin' => '../dummy-3.8.0/fileadmin',
'typo3conf' => '../dummy-3.8.0/typo3conf',
'typo3temp' => '../dummy-3.8.0/typo3temp'
);
foreach($arrSymlink as $strDirectory => $arrSymlinks)
{
foreach($arrSymlinks as $strLink => $strTarget)
{
$strLink = $strDirectory."/".$strLink;
echo("<tr><td>$strLink</td><td>-></td><td>$strTarget</td><td>");
// ggf. löschen
if(is_file($strLink) || is_link($strLink))
{
unlink($strLink);
echo("gelöscht, ");
} # if
// (neu) setzen
if(symlink($strTarget, $strLink))
{
echo("erstellt");
}
else
{
echo("ERROR");
} # if
echo("</td></tr>\n");
} # foreach
} # foreach
?>
</table>
</body>
</html>
Anmerkung: Ich habe das nicht probiert, bin mir aber ziemlich sicher, dass das funktioniert! Ich wäre also sehr erfreut über Feedback einiger Windows-Benutzer. Danke!