---
title: "Verwendet das .tar.gz mit Junctions!"
url: "https://www.typo3.net/d/29154-verwendet-das-targz-mit-junctions"
source: "typo3.net"
tags: ["Hosting","Lokale Umgebung","Tipp"]
created: "2005-08-24"
last_reply: "2005-09-14"
replies: 1
solved: false
page: 1
pages: 1
lang: "de"
---

# Verwendet das .tar.gz mit Junctions!

Hosting › Lokale Umgebung · 1 Antwort · gestartet 2005-08-24

## Eröffnungsbeitrag

**droptix** · 2005-08-24 · [Beitrag #1](https://www.typo3.net/d/29154-verwendet-das-targz-mit-junctions/1)

Wie in diesem Beitrag diskutiert wurde [/d/25881-haufenweise-gleiche-ordner](https://www.typo3.net/d/25881-haufenweise-gleiche-ordner), 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.

```php
<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!*

## Antworten

### [#2](https://www.typo3.net/d/29154-verwendet-das-targz-mit-junctions/2) · droptix · 2005-09-14

Habe den ganzen Spaß heute getestet: Es geht mit Einschränkungen.

1) Beim Entpacken des .tar.gz Archivs z.B. mittels WinRAR entstehen Fehlermeldungen. Ich weiß nicht, ob wirklich alles entpackt wird. Also habe ich beide (Source- und Dummy-Paket) .tar.gz Archive in Linux auf einem UNIX-Filesystem entpackt (Knoppix Live CD). Spätestens beim Kopieren beider Verzeichnisse auf die NTFS-Partition gehen die Symlinks kaputt. Genauer gesagt: es wird alles doppelt und dreifach kopiert  #giggle#  was uns aber nicht stören sollte.

2) Die fehlerhaften Symlinks müssen erstmal gelöscht werden. Dazu habe ich mir folgende Batch-Datei (delfalselinks.cmd) angelegt:

```typoscript
del typo3_src-3.8.0\showpic.php
del typo3_src-3.8.0\index.php
rmdir /S /Q typo3_src-3.8.0\tslib
rmdir /S /Q typo3_src-3.8.0\typo3\t3lib
del typo3_src-3.8.0\typo3\thumbs.php
rmdir /S /Q typo3_src-3.8.0\typo3\gfx
del typo3_src-3.8.0\t3lib\fonts\arial.ttf
del typo3_src-3.8.0\t3lib\fonts\verdana.ttf
rmdir /S /Q dummy-3.8.0\typo3_src
rmdir /S /Q dummy-3.8.0\typo3
rmdir /S /Q dummy-3.8.0\tslib
rmdir /S /Q dummy-3.8.0\t3lib
del dummy-3.8.0\showpic.php
rmdir /S /Q dummy-3.8.0\media
del dummy-3.8.0\index.php
```

Verlinkte Dateien werden mit "del" gelöscht. Verzeichnisse dagegen mit "rmdir /S /Q" (rekursiv ohne Nachfrage bei nicht-leeren Verzeichnissen).

3) Echte Links müssen nun her! Aber: NTFS kennt symbolische Links nur für Verzeichnisse. Für verlinkte Dateien müssen harte Links herhalten. Das ist die einzige Einschränkung, mit der sich aber gut und gerne leben lässt. Also besorgt euch die Programme "junction.exe" und "ln.exe" (benötigt "NTErr10.dll") von <http://www.sysinternals.com/utilities/junction.html> und <http://www.losoft.de/lstools.html>. Kopiert die drei Dateien in einen neuen Ordner "tools".

4) Für das Wiederherstellen der "echten" Links habe ich folgende Batch-Datei verwendet (createlinks.cmd), die im selben Ordner wie das Verzeichnis "tools" liegen muss:

```typoscript
tools\junction.exe -s typo3_src-3.8.0\tslib typo3_src-3.8.0\typo3\sysext\cms\tslib
tools\junction.exe -s typo3_src-3.8.0\typo3\t3lib typo3_src-3.8.0\t3lib
tools\junction.exe -s typo3_src-3.8.0\typo3\gfx typo3_src-3.8.0\t3lib\gfx
tools\ln.exe typo3_src-3.8.0\tslib\showpic.php typo3_src-3.8.0\showpic.php
tools\ln.exe typo3_src-3.8.0\tslib\index_ts.php typo3_src-3.8.0\index.php
tools\ln.exe typo3_src-3.8.0\t3lib\thumbs.php typo3_src-3.8.0\typo3\thumbs.php
tools\ln.exe typo3_src-3.8.0\t3lib\fonts\nimbus.ttf typo3_src-3.8.0\t3lib\fonts\arial.ttf
tools\ln.exe typo3_src-3.8.0\t3lib\fonts\vera.ttf typo3_src-3.8.0\t3lib\fonts\verdana.ttf
tools\junction.exe -s dummy-3.8.0\typo3_src typo3_src-3.8.0
tools\junction.exe -s dummy-3.8.0\typo3 dummy-3.8.0\typo3_src\typo3
tools\junction.exe -s dummy-3.8.0\tslib dummy-3.8.0\typo3_src\tslib
tools\junction.exe -s dummy-3.8.0\t3lib dummy-3.8.0\typo3_src\t3lib
tools\junction.exe -s dummy-3.8.0\media dummy-3.8.0\tslib\media
tools\ln.exe dummy-3.8.0\tslib\showpic.php dummy-3.8.0\showpic.php
tools\ln.exe dummy-3.8.0\tslib\index_ts.php dummy-3.8.0\index.php
```

"junction.exe" erstellt symbolische Links. "ln.exe" hingegen harte Links, die auf Dateien zeigen.

---

Quelle: „Verwendet das .tar.gz mit Junctions!“, typo3.net, https://www.typo3.net/d/29154-verwendet-das-targz-mit-junctions
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
