<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EntwicklerForum.org &#187; OS &#8211; Betriebssysteme</title>
	<atom:link href="http://www.entwicklerforum.org/category/os/feed" rel="self" type="application/rss+xml" />
	<link>http://www.entwicklerforum.org</link>
	<description>Tipps und Tricks für Entwickler</description>
	<lastBuildDate>Fri, 09 Dec 2011 17:54:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Eigene Ma&#223;nahmen zur Systempflege bei Mac OS X</title>
		<link>http://www.entwicklerforum.org/eigene-systempflegemassnahmen</link>
		<comments>http://www.entwicklerforum.org/eigene-systempflegemassnahmen#comments</comments>
		<pubDate>Wed, 26 Oct 2011 17:02:59 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1857</guid>
		<description><![CDATA[Wie schon in einem der voraufgegangenen Artikel n&#228;her beleuchtet wurde, ist Mac OS X mit einem leistungsf&#228;higen und flexiblen Steuerungsmechanismus zur automatisierten Systempflege ausgestattet. Will man seine eigenen Vorg&#228;nge in Form von Skripts o.&#228;. regelm&#228;&#223;ig ausf&#252;hren lassen, dann hat man folgende M&#246;glichkeiten. 1. Einf&#252;gen eines eigenen Skripts in den existierenden periodic Mechanismus Abh&#228;ngig davon, ob [...]]]></description>
			<content:encoded><![CDATA[<p>Wie schon in einem der <a href="./automatische-systempflege/">voraufgegangenen Artikel</a> n&#228;her beleuchtet wurde, ist <em>Mac OS X</em> mit einem leistungsf&#228;higen und flexiblen Steuerungsmechanismus zur automatisierten Systempflege ausgestattet.</p>
<p>Will man seine eigenen Vorg&#228;nge in Form von Skripts o.&#228;. regelm&#228;&#223;ig ausf&#252;hren lassen, dann hat man folgende M&#246;glichkeiten.</p>
<blockquote><p>1. Einf&#252;gen eines eigenen Skripts in den existierenden <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> Mechanismus
</p></blockquote>
<p>Abh&#228;ngig davon, ob der Vorgang t&#228;glich, w&#246;chentlich oder monatlich ablaufen soll, gibt es eine daf&#252;r vorgefertigte Ablage:<br />
 * /etc/periodic/daily &#8211; Verzeichnis, welches die t&#228;glich auszuf&#252;hrenden Skripts enth&#228;lt<br />
 * /etc/periodic/weekly  &#8211; Verzeichnis, welches die w&#246;chentlich auszuf&#252;hrenden Skripts enth&#228;lt<br />
 * /etc/periodic/monthly  &#8211; Verzeichnis, welches die monatlich auszuf&#252;hrenden Skripts enth&#228;lt</p>
<p>Die Reihenfolge wie die Skripts ausgef&#252;hrt werden ist &#252;ber die vorangestellte Zahl definiert. Und die Uhrzeit wann die Skripts gestartet werden, ist &#252;ber die Konfiguration des <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> Mechanismus definiert. Wie man die Ausf&#252;hrungszeit dieses Dienstes beeinflussen kann, erf&#228;hrt man <a href="./automatische-systempflege/">hier</a>.</p>
<blockquote><p>2. Hinzuf&#252;gen eines eigenen Skripts bzw. Skriptaufrufs in einen vorgefertigten Platzhalter.
</p></blockquote>
<p>Jeweils am Ende eines <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> Ablaufs wird ein vordefiniertes Skript ausgef&#252;hrt, sofern es existiert.<br />
 * /etc/daily.local<br />
 * /etc/weekly.local<br />
 * /etc/monthly.local</p>
<p>Werden verschiedene Interpreter zur Ausf&#252;hrung der Befehle ben&#246;tigt, dann kann man aus dieser Datei weitere Skripts aufrufen. Dann sind f&#252;r den Fall eines Abbruchs jedoch spezielle Vorkehrungen zu treffen.</p>
<p>Anstatt eines Skripts lassen sich auch mehrere oder der Inhalt eines ganzen Verzeichnis ausf&#252;hren. In diesem Fall kann man in einer der unter 3. erw&#228;hnten Dateien die Variablen:<br />
 * $daily_local<br />
 * $weekly_local<br />
 * $monthly_local<br />
&#252;berschreiben (z.B. monthly_local=&#8221;/usr/local/scripts.monthly/*&#8221;).</p>
<blockquote><p>3. Vorgesehene Ablage aktivieren &#8230;
</p></blockquote>
<p>Entsprechend den Anforderungen eigene Konfigurationsvariablen hinterlegen oder vorhandene &#252;berschreiben. Daf&#252;r sind zwei Dateien vorgesehen:<br />
 * /etc/periodic.conf<br />
 * /etc/periodic.conf.local<br />
Auch ein Verzeichnis zur Ablage der eigenen Ma&#223;nahmen ist schon definiert: <strong><em>/usr/local/etc/periodic</em></strong> in der Variable $local_periodic.<br />
Es wird allerdings vom bestehenden Mechanismus (noch) nicht verwendet.<br />
Bei Bedarf kann man es in einer der beiden o.g. lokalen Konfigurationsdateien anpassen.</p>
<p>Analog zu den 999.local Skripts in den unter 1. aufgef&#252;hrten Verzeichnissen bspw. 888.local Skripts anlegen, welche die ben&#246;tigten selbstdefinierten Variable auswerten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/eigene-systempflegemassnahmen/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatische Systempflege bei Mac OS X</title>
		<link>http://www.entwicklerforum.org/automatische-systempflege</link>
		<comments>http://www.entwicklerforum.org/automatische-systempflege#comments</comments>
		<pubDate>Fri, 21 Oct 2011 10:01:50 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1591</guid>
		<description><![CDATA[Mit der Einf&#252;hrung von Mac OS 10.4 (Tiger) wurde der Automatismus, welcher die systemtechnischen Wartungsma&#223;nahmen regelm&#228;&#223;ig ausf&#252;hrt von crontab auf launchd umgestellt. Dies bedeutet nicht, da&#223; man mit der crontab auf Mac OS X nicht mehr arbeiten k&#246;nnte, sie funktioniert nach wie vor. Doch dieses Verfahren ist eben alt und wird von Apple selbst nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Mit der Einf&#252;hrung von <a href="http://en.wikipedia.org/wiki/Mac_OS_X_v10.4">Mac OS 10.4 (Tiger)</a> wurde der Automatismus, welcher die systemtechnischen Wartungsma&#223;nahmen regelm&#228;&#223;ig ausf&#252;hrt von <em>crontab</em> auf <em>launchd</em> umgestellt. Dies bedeutet nicht, da&#223; man mit der crontab auf Mac OS X nicht mehr arbeiten k&#246;nnte, sie funktioniert nach wie vor. Doch dieses Verfahren ist eben alt und wird von Apple selbst nicht mehr angewandt (s. Artikel <a href="http://support.apple.com/kb/HT2319">background maintenance tasks</a>).</p>
<p>Der <em>launchd</em> Mechanismus ist ein ziemlich schlaues Verfahren zur Verwaltung von Systemdiensten und Hintergrundprozessen. Einer meiner folgenden Artikel wird sich speziell mit diesem Thema befassen.</p>
<p>Die vom <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man5/launchd.plist.5.html">launchd</a> regelm&#228;&#223;ig ausgef&#252;hrten Wartungsma&#223;nahmen sind:<br />
 * <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> daily &#8211; /System/Library/LaunchDaemons/com.apple.periodic-daily.plist<br />
 * <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> weekly &#8211; /System/Library/LaunchDaemons/com.apple.periodic-weekly.plist<br />
 * <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/periodic.8.html">periodic</a> monthly &#8211; /System/Library/LaunchDaemons/com.apple.periodic-monthly.plist</p>
<p>Es gibt schon zahlreiche Artikel (u.a. <a href="http://www.thexlab.com/faqs/maintscripts.html">diesen hier</a>) die sich mit dem Thema befassen, was da genau im Hintergrund getan wird. Doch wenige zeigen einem, wie man die Uhrzeit des Ablaufs anpa&#223;t.<br />
Zum Beispiel funktioniert der Mechanismus auf unserem Mac Server ohne Probleme (der Server ist ja auch rund um die Uhr angeschaltet).</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">zebra:~ super$ cd /var/log
zebra:log super$ ls -ltr *.out
-rw-r--r--  1 root  wheel    1653 Oct  1 05:30 monthly.out
-rw-r--r--  1 root  wheel    6269 Oct 15 03:15 weekly.out
-rw-r--r--  1 root  wheel  455430 Oct 21 03:15 daily.out</pre></div></div>

<p>Hingegen werden diese Systempflegema&#223;nahmen auf meinem <em>MacBook</em> eigentlich nie ausgef&#252;hrt, denn zwischen 3 und 6 Uhr mogens ist der entweder im Stromsparmodus schlafen gelegt oder ganz ausgeschaltet.</p>
<p><a href="http://www.entwicklerforum.org/wp-content/uploads/2011/10/periodic-daily.png"><img src="http://www.entwicklerforum.org/wp-content/uploads/2011/10/periodic-daily-300x167.png" alt="Xcode Ansicht der Konfigurationsdatei" title="periodic-daily" width="300" height="167" class="alignnone size-medium wp-image-1600" /></a></p>
<p>Man kann die Skripte nat&#252;rlich manuell aus dem Terminal Programm starten, doch zwischen 12 und 13 Uhr mittags ist bei mir eine gute Zeit wann diese auf meinem mobilen Computer automatisch ihren Dienst tun k&#246;nnen. Also &#228;ndern wir das, und das geht bspw. so &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[super@sequoia:LaunchDaemons]? cd /System/Library/LaunchDaemons
[super@sequoia:LaunchDaemons]? sudo vi com.apple.periodic*
....</pre></div></div>

<p>Wer den <em>vi</em> noch nicht bedienen kann, findet <a href="http://www.unix-manuals.com/refs/vi-ref/vi-ref.htm">hier eine Anleitung</a>.</p>
<p>Will man die &#196;nderungen hingegen im <a href="http://developer.apple.com/xcode/">Xcode 4</a> mit dem eingebauten <em>Property List Editor</em> durchf&#252;hren, dann sind dazu mehr Anpassungen n&#246;tig.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[super@sequoia:LaunchDaemons]? cd /System/Library/LaunchDaemons
[super@sequoia:LaunchDaemons]? sudo chmod o+w . com.apple.periodic*
[super@sequoia:LaunchDaemons]? open -a /Developer/Applications/Xcode.app com.apple.periodic*
....
[super@sequoia:LaunchDaemons]? sudo chmod g-w,o-w . com.apple.periodic*
[super@sequoia:LaunchDaemons]? sudo chown root:wheel com.apple.periodic*
[super@sequoia:LaunchDaemons]? sudo xattr -d com.apple.xcode.PlistType com.apple.periodic*</pre></div></div>

<p>Warum blo&#223; soviel Zusatzaufwand f&#252;r das bi&#223;chen mehr an Komfort?<br />
Nun es ist so, da&#223; Xcode zum einen die ge&#228;nderten Dateien dem Benutzer und seiner prim&#228;ren Gruppe &#252;bereignet, und zus&#228;tzlich noch <a href="http://de.wikipedia.org/wiki/Metadaten">Metadaten</a> den Dateien hinzuf&#252;gt.<br />
Wenn Metadaten zu einer Datei existieren, wird das durch ein <strong>@</strong> kenntlich gemacht &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[super@sequoia:LaunchDaemons]? ls -le@ com.apple.periodic*
-rw-rw-r--@ 1 super staff  - 612 23 Okt 10:46 com.apple.periodic-daily.plist
	com.apple.xcode.PlistType	  0 
-rw-rw-r--@ 1 super staff  - 665 21 Okt 14:01 com.apple.periodic-monthly.plist
	com.apple.xcode.PlistType	  0 
-rw-rw-r--@ 1 super staff  - 667 21 Okt 14:01 com.apple.periodic-weekly.plist
	com.apple.xcode.PlistType	  0</pre></div></div>

<p>Die hier ausgegeben Zeilen zeigen die Dateirechte, welche nach dem Speichern der &#196;nderungen vorherrschten, bevor die Kommandos zum Herstellen des urspr&#252;nglichen Zustandes ausgef&#252;hrt wurden.<br />
Einer meiner folgenden Artikel wird sich noch genauer mit diesem Thema auseinandersetzen.</p>
<p><u>Die eigentlich durchzuf&#252;hrenden &#196;nderungen liegen auf der Hand &#8230;</u></p>
<blockquote><p>periodic-daily.plist</p></blockquote>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">                &lt;key&gt;Hour&lt;/key&gt;
		&lt;integer&gt;12&lt;/integer&gt;
		&lt;key&gt;Minute&lt;/key&gt;
		&lt;integer&gt;13&lt;/integer&gt;</pre></div></div>

<p>Jeden Tag um 12:13 Uhr geht es mit der t&#228;glichen Pflege los.</p>
<blockquote><p>periodic-weekly.plist</p></blockquote>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">		&lt;key&gt;Hour&lt;/key&gt;
		&lt;integer&gt;12&lt;/integer&gt;
		&lt;key&gt;Minute&lt;/key&gt;
		&lt;integer&gt;23&lt;/integer&gt;
		&lt;key&gt;Weekday&lt;/key&gt;
		&lt;integer&gt;1&lt;/integer&gt;</pre></div></div>

<p>Jeden Montag (Sonntag = 0) kommen um 12:23 Uhr die w&#246;chentlichen Pflegema&#223;nahmen hinzu. Als Standard ist hier der Samstag (6) eingetragen. Aber ich arbeite nicht jedes Wochenende, so kommt mir pers&#246;nlich der Montag gelegener.</p>
<blockquote><p>periodic-monthly.plist</p></blockquote>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">		&lt;key&gt;Hour&lt;/key&gt;
		&lt;integer&gt;12&lt;/integer&gt;
		&lt;key&gt;Minute&lt;/key&gt;
		&lt;integer&gt;37&lt;/integer&gt;
		&lt;key&gt;Day&lt;/key&gt;
		&lt;integer&gt;1&lt;/integer&gt;</pre></div></div>

<p>Und an jedem ersten im Monat werden um 12:37 Uhr die monatlichen Pflegevorg&#228;nge gestartet.<br />
Nat&#252;rlich werden diese Einstellung erst nach dem erneuten Laden der Konfigurationsdateien aktiviert. Ganz sicher ist das nach einem Neustart des Systems der Fall.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/automatische-systempflege/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Time Machine Local Backup</title>
		<link>http://www.entwicklerforum.org/time-machine-local-backup</link>
		<comments>http://www.entwicklerforum.org/time-machine-local-backup#comments</comments>
		<pubDate>Fri, 21 Oct 2011 07:51:54 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1574</guid>
		<description><![CDATA[Mit Mac OS X Lion (Version 10.7) wurde die Software zur Datensicherung Time Machine nochmals deutlich verbessert. So ist es einem mobilen Anwender jetzt m&#246;glich an verschiedenen Arbeitspl&#228;tzen unterschiedliche Festplatten oder Netzwerklaufwerke als Datenablage zu verwenden. Dar&#252;ber hinaus besteht noch die M&#246;glichkeit einer lokalen Sicherung. Diese kann sehr n&#252;tzlich sein, aber manchmal st&#246;rt es einen [...]]]></description>
			<content:encoded><![CDATA[<p>Mit Mac OS X Lion (Version 10.7) wurde die Software zur Datensicherung <em>Time Machine</em> nochmals deutlich verbessert. So ist es einem mobilen Anwender jetzt m&#246;glich an verschiedenen Arbeitspl&#228;tzen unterschiedliche Festplatten oder Netzwerklaufwerke als Datenablage zu verwenden. Dar&#252;ber hinaus besteht noch die M&#246;glichkeit einer lokalen Sicherung. Diese kann sehr n&#252;tzlich sein, aber manchmal st&#246;rt es einen auch. Denn zur Sicherung wird dieselbe Festplatte benutzt auf welcher sich auch das Betriebssystem befindet. Das wirkt sich bei der Sicherung dann negativ auf den Datendurchsatz aus und der zur Verf&#252;gung stehende Platz auf der Festplatte verringert sich bei &#196;nderungen an gro&#223;en Datenbest&#228;nden deutlich. Deswegen kann diese Funktion bei Bedarf ein- und ausgeschaltet werden.</p>
<p>Dem Thema wie man mit <em>Time Machine</em> auf verschiedenen Medien Sicherungen durchf&#252;hren kann widmet sich ein <a href="http://hints.macworld.com/article.php?story=20110906221223743">Artikel auf Macworld</a>.</p>
<p>Und das Thema wie die lokalen Sicherungen verwaltet werden, wird auf der <a href="http://www.alexanderwilde.com/2011/08/time-machine-unter-lion-anderungen-und-tipps/">Seite von Alexander Wilde</a> sehr ausf&#252;hrlich erkl&#228;rt.</p>
<p>Technisch funktioniert dieses Verfahren so &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[root@sequoia:~]# mount
/dev/disk1 on / (hfs, local, journaled)
devfs on /dev (devfs, local, nobrowse)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
localhost:/gT1vdKfZjhVeYqEnaYXbbb on /Volumes/MobileBackups (mtmfs, nosuid, read-only, nobrowse)</pre></div></div>

<p>Die Sicherungen sind im Verzeichnis <em>/Volumes/MobileBackups</em> bereitgestellt und befinden sich in der etwas kryptischen Freigabe <em>localhost:/gT1vdKfZjhVeYqEnaYXbbb</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[root@sequoia:~]? ls -l /Volumes/
drwxrwxrwx  0 root  wheel  0 Oct 21 08:23 MobileBackups
lrwxr-xr-x  1 root  admin  1 Oct 21 08:22 sequoia_hd0 -&gt; /
[root@sequoia:~]? ls -l /Volumes/MobileBackups/Backups.backupdb/sequoia/
drwxr-xr-x@ 3 root  wheel  102 Oct 21 08:23 2011-10-15-163456
drwxr-xr-x@ 3 root  wheel  102 Oct 21 08:23 2011-10-16-174223
drwxr-xr-x@ 3 root  wheel  102 Oct 21 08:23 2011-10-17-180254
drwxr-xr-x@ 3 root  wheel  102 Oct 21 08:23 2011-10-18-180544
lrwxrwxrwx  0 root  wheel    0 Oct 21 08:22 Latest -&gt; 2011-10-18-180544</pre></div></div>

<p>Auf der Festplatte liegen die lokalen Sicherungen im versteckten Ordner <em>/.MobileBackups</em>.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[root@sequoia:Volumes]? ls -la /
drwxr-xr-x  23 root  wheel      1156 Oct 16 15:44 .
drwxr-xr-x  23 root  wheel      1156 Oct 16 15:44 ..
-rw-rw-r--   1 root  admin     15364 Oct 13 16:09 .DS_Store
d--x--x--x   7 root  wheel       238 Oct 16 15:44 .DocumentRevisions-V100
drwxr-xr-x+  3 root  wheel       102 Oct 14 07:26 .MobileBackups
drwx------   4 root  wheel       170 Oct 13 13:34 .Spotlight-V100
d-wx-wx-wt   2 root  staff        68 Oct 13 13:09 .Trashes
.....</pre></div></div>

<p>Nach dem Ausschalten der lokalen Sicherungen, sind diese Verzeichnisse verschwunden und der verbrauchte Platz wieder freigegeben.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/time-machine-local-backup/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ACL &#8211; Erweiterte Dateiberechtigungen bei Mac OS X</title>
		<link>http://www.entwicklerforum.org/acl-mac-osx</link>
		<comments>http://www.entwicklerforum.org/acl-mac-osx#comments</comments>
		<pubDate>Mon, 10 Oct 2011 08:57:41 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1481</guid>
		<description><![CDATA[Seit Mac OS 10.7 (Lion) kommen ACLs (= Access Control List, in die deutsche Sprache wahrscheinlich am besten mit erweiterten Dateizugriffsberechtigungen zu &#252;bersetzen) zum Einsatz. Das f&#228;llt zun&#228;chst auch technisch versierten Benutzern nicht sofort ins Auge. Zun&#228;chst einmal handelt es sich dabei um nichts Neues. Auf Mac OS wurden diese Dateiattribute mit Mac OS 10.4 [...]]]></description>
			<content:encoded><![CDATA[<p>Seit <a href="http://de.wikipedia.org/wiki/Mac_OS_X_v10.7">Mac OS 10.7 (Lion)</a> kommen ACLs (= Access Control List, in die deutsche Sprache wahrscheinlich am besten mit <em>erweiterten Dateizugriffsberechtigungen</em> zu &#252;bersetzen) zum Einsatz. Das f&#228;llt zun&#228;chst auch technisch versierten Benutzern nicht sofort ins Auge. </p>
<p>Zun&#228;chst einmal handelt es sich dabei um nichts Neues. Auf Mac OS wurden diese Dateiattribute mit <a href="http://de.wikipedia.org/wiki/Mac_OS_X_v10.4">Mac OS 10.4 (Tiger)</a> eingef&#252;hrt, welche <a href="http://de.wikipedia.org/wiki/Mac_OS_X#Mac_OS_X_10.4_.28Tiger.29">offiziell am 29. April 2005</a> erschien.<br />
Die meisten <a href="http://de.wikipedia.org/wiki/Access_Control_List">anderen Betriebssysteme hatten ACLs</a> schon bedeutend l&#228;nger mit an Bord.<br />
Der Funktionsumfang dieser erweiterten Dateizugriffsrechte liegt im wesentlichen im zugrunde gelegten <a href="http://en.wikipedia.org/wiki/Comparison_of_file_systems#Metadata">Dateisystem</a> verankert. Und bez&#252;glich Mac OS X haben sich vor einigen Jahren auch schon <a href="http://aplawrence.com/MacOSX/acl.html">andere damit befa&#223;t</a>.</p>
<p>Die Befehle, welche man zum Anschauen und zur Bearbeitung von ACLs benutzt lauten:<br />
 * <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/ls.1.html">ls -le</a><br />
 * <a href="http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/chmod.1.html#//apple_ref/doc/man/1/chmod">chmod +a</a></p>
<p>Und was soll das jetzt?</p>
<p>Zum einen wird man manchmal unfreiwillig damit konfrontiert, davon handelt mein<a href="http://www.entwicklerforum.org/probleme-mit-gnupg-mit-mac-os-x-lion"> vorangehender Artikel</a>.<br />
Zum anderen gibt es denkbar viele Anwendungsf&#228;lle, welche sich mit ACLs sehr geschickt und einfach l&#246;sen lassen. Greifen wir uns also einen heraus &#8230;</p>
<p>1. Individuelle Drop Box</p>
<p>Ein jeder Mac OS X Benutzer stellt f&#252;r andere Anwender eine Ablage f&#252;r Dateien bereit, deren Inhalt sie aber nicht sehen k&#246;nnen bzw. d&#252;rfen.<br />
Nun w&#228;re es manchmal hilfreich, einer einzelnen Person das Recht einr&#228;umen zu k&#246;nnen in ein solches Verzeichnis hineinzuschauen, was denn schon drin liegt. Also eine individuelle Drop Box anlegen.</p>
<p>Man schaut sich die aktuellen Rechte an  &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ls -le
drwx-wx-wx+ 2 martin  staff   102  8 Okt 09:30 Drop Box
 0: user:martin allow list,add_file,search,delete,add_subdirectory,delete_child,
    readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,
    chown,file_inherit,directory_inherit
 1: user:_spotlight inherited allow list,search,file_inherit,directory_inherit
&nbsp;
-rw-r--r--+ 1 martin  staff  1711  8 Okt 09:11 mac_rastetter-gpg.asc
 0: user:_spotlight inherited allow read,execute</pre></div></div>

<p>Das der Kennzeichnung der Zugriffsrechte nachgestellte <strong>+</strong> Zeichen, gibt einem den Hinweis es sind ACLs f&#252;r diese Datei gesetzt. Diese werden je Benutzer bzw. Gruppe von dem Befehl <em>ls -le</em> aufgelistet.<br />
ACL 0 : Der Besitzer (martin) des Verzeichnisses bekommt explizit alle Rechte<br />
ACL 1 : Der Spotlight Dienst (_spotlight) darf alles darinnen befindliche lesen und durchsuchen<br />
Bei einer darinnen befindlichen Datei (mein &#246;ffentlicher PGP Schl&#252;ssel) hat jeder Leserechte und unabh&#228;ngig davon, wie ich die gew&#246;hnlichen Dateirechte einschr&#228;nkte, blieb dem Spotlight Dienst die M&#246;glichkeit den Inhalt zu lesen bzw. diese auszuf&#252;hren (wozu auch immer).</p>
<p>Nun legen wir ein Verzeichnis mit individueller Berechtigung an &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ cp -Rp Drop\ Box Ina\'s\ Box
$ chmod o-wx Ina\'s\ Box
$ chmod g-wx Ina\'s\ Box
$ chmod +a &quot;ina allow list&quot; Ina\'s\ Box
$ chmod +a &quot;ina allow add_file&quot; Ina\'s\ Box
$ chmod +a &quot;ina allow search&quot; Ina\'s\ Box
$ chmod +a &quot;ina deny delete_child&quot; Ina\'s\ Box</pre></div></div>

<p>Wir kopieren also das Verzeichnis <em>Drop Box</em> mit Inhalt (in diesem Fall hoffentlich leer) und allen Berechtigungen und nennen es <em>Ina&#8217;s Box</em>.<br />
Dann nehmen wir allen anderen Benutzern und jenen der eigenen Gruppe (<em>staff</em> s.o.) alle Rechte.<br />
Wir erlauben nur der Benutzerin <em>ina</em> sich den Inhalt des Verzeichnisses anzusehen, Dateien hinzuzuf&#252;gen,<br />
darin zu suchen und verbieten das L&#246;schen.</p>
<p>Das ganze sieht dann wie folgt aus &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ls -le
drwx-wx-wx+ 2 martin  staff   204 10 Okt 08:46 Drop Box
 0: user:martin allow list,add_file,search,delete,add_subdirectory,delete_child,
    readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,
    chown,file_inherit,directory_inherit
 1: user:_spotlight inherited allow list,search,file_inherit,directory_inherit
drwx------+ 2 martin  staff   306 10 Okt 08:47 Ina's Box
 0: user:ina deny delete_child
 1: user:ina allow list,add_file,search
 2: user:martin allow list,add_file,search,delete,add_subdirectory,delete_child,
    readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,
    chown,file_inherit,directory_inherit
 3: user:_spotlight inherited allow list,search,file_inherit,directory_inherit
-rw-r--r--+ 1 martin  staff  1711  8 Okt 09:11 mac_rastetter-gpg.asc
 0: user:_spotlight inherited allow read,execute</pre></div></div>

<p>So, jetzt wollen wir schauen ob und wie es funktioniert.<br />
Alle Benutzer sehen mein &#246;ffentliches Verzeichnis im Finder wie folgt:<br />
<a href="http://www.entwicklerforum.org/wp-content/uploads/2011/10/super-public.png"><img src="http://www.entwicklerforum.org/wp-content/uploads/2011/10/super-public.png" alt="Allgemeine Benutzeransicht" title="super-public" width="339" height="129" class="alignnone size-full wp-image-1496" /></a><br />
Wohingegen die Benutzerin <em>ina</em> mein &#246;ffentliches Verzeichnis im Finder wie folgt dargestellt bekommt:<br />
<a href="http://www.entwicklerforum.org/wp-content/uploads/2011/10/ina-public.png"><img src="http://www.entwicklerforum.org/wp-content/uploads/2011/10/ina-public.png" alt="Ina Ansicht" title="ina-public" width="342" height="119" class="alignnone size-full wp-image-1497" /></a><br />
Und siehe da, diese Benutzerin kann mir dort nicht nur Dateien hinterlegen, sondern diese und deren Inhalt kontrollieren.<br />
<a href="http://www.entwicklerforum.org/wp-content/uploads/2011/10/ina-inasbox.png"><img src="http://www.entwicklerforum.org/wp-content/uploads/2011/10/ina-inasbox.png" alt="Ina Inhalt" title="ina-inasbox" width="340" height="121" class="alignnone size-full wp-image-1498" /></a></p>
<p>Die tats&#228;chlichen Rechte sehen dann wie folgt aus.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ls -le Ina\'s\ Box/
-rw-r--r--+ 1 ina  staff  1188252 15 Sep  2009 ObjC.pdf
 0: user:martin inherited allow read,write,execute,delete,append,
    readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,
    chown
 1: user:_spotlight inherited allow read,execute
-rw-r--r--+ 1 ina  staff      124 10 Okt 08:40 maxosx_extensions.txt
 0: user:martin inherited allow read,write,execute,delete,append,
    readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,
    chown
 1: user:_spotlight inherited allow read,execute</pre></div></div>

<p>Man kann erkennen, da&#223; bei den Dateien die Rechte vom Verzeichnis vererbt (inherited) wurden, sowie keine Verzeichnisattribute gesetzt sind.<br />
Die allgemeinen Zugriffsrechte bleiben erhalten.<br />
Will die Besitzerin die Dateien l&#246;schen, wird das abgelehnt, bzw. mit der Frage nach dem Kennwort des Administrators quittiert (der darf sowieso alles).<br />
Nachtr&#228;gliche &#196;nderungen an den Dateien sind mit Mac Texteditoren (TextEditor, XCode) nicht mehr m&#246;glich, wohingegen auf der Unix Kommandoebene keine Einschr&#228;nkungen bestehen.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$cd ~martin/Public
$ echo &quot;Hallo Welt ... wie geht's?&quot; &gt;&gt; Ina\'s\ Box/maxosx_extensions.txt 
$ tail -1 Ina\'s\ Box/maxosx_extensions.txt 
Hallo Welt ...wie geht's?</pre></div></div>

<p>Man erwartet eigentlich auch genau dieses Verhalten, dennoch behaupten o.g. Editoren die Datei sei gesperrt?!<br />
Vielleicht will ja ein interessierter Leser dieser Sache n&#228;her auf den Grund gehen &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/acl-mac-osx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Probleme mit GnuPG Verschl&#252;sselung beim Einsatz unter Mac OS 10.7 Lion</title>
		<link>http://www.entwicklerforum.org/probleme-mit-gnupg-mit-mac-os-x-lion</link>
		<comments>http://www.entwicklerforum.org/probleme-mit-gnupg-mit-mac-os-x-lion#comments</comments>
		<pubDate>Sun, 09 Oct 2011 14:25:36 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[Allgemein / Web 2.0]]></category>
		<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Lion]]></category>
		<category><![CDATA[Mac OS X]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1454</guid>
		<description><![CDATA[Wenn jemand seinen Computer auch anderweitig als nur zum Spielen einsetzt, dann st&#246;&#223;t er automatisch auf das Thema Verschl&#252;sselung. Eine qualitativ hochwertige Software, welche einfach in der Nutzung und zudem v&#246;llig kostenlos erh&#228;ltlich ist, nennt sich GNU Privacy Guard oder kurz GnuPG. Nutzer der Apple Mac OS X Betriebssystemfamilie greifen dabei gerne auf das Softwarepaket [...]]]></description>
			<content:encoded><![CDATA[<p>Wenn jemand seinen Computer auch anderweitig als nur zum Spielen einsetzt, dann st&#246;&#223;t er automatisch auf das Thema Verschl&#252;sselung. Eine qualitativ hochwertige Software, welche einfach in der Nutzung und zudem v&#246;llig kostenlos erh&#228;ltlich ist, nennt sich <a href="http://www.gnupg.org">GNU Privacy Guard</a> oder kurz GnuPG.</p>
<p>Nutzer der Apple Mac OS X Betriebssystemfamilie greifen dabei gerne auf das Softwarepaket <a href="http://www.gpgtools.org">GPGTools</a> zur&#252;ck. Eine <a href="http://www.kaipi.de/2011/01/26/gpgtools-version-2011-01-25-erschienen">deutsche Installationsanleitung</a> erlaubt selbst technischen Laien eine problemlose Installation der Software.<br />
Unabh&#228;ngig davon, ob man einige der <a href="http://www.gpgtools.org/faq.html">Funktionen</a> nun direkt aus irgendwelchen Anwendungen nutzen will, kann ein gew&#246;hnlicher Anwender unter Mac OS 10.7 (Lion) weder ent- noch verschl&#252;sseln. Und das sollte generell schon m&#246;glich sein!</p>
<p>Schaut man in der <em>Konsole</em> Anwendung, fallen einem Meldungen der Art</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">08.10.11 09:43:30,335 org.gpgtools.macgpg2.gpg-agent: gpg-agent[5844]: 
    error binding socket to `/Users/myuser/.gnupg/S.gpg-agent': Invalid argument</pre></div></div>

<p>ins Auge. Und man stellt fest, da&#223; der pers&#246;nliche GPG Agent nicht l&#228;uft.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ ps uxw | grep gpg</pre></div></div>

<p>bzw.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ launchctl list | grep gpg
	-	(2) org.gpgtools.macgpg2.gpg-agent</pre></div></div>

<p>Die Zahl in Klammern ist die Fehlernummer, welcher beim Startversuch des Agenten auftritt.</p>
<p>Nun gut, sucht man im Internet &#8230; dann findet man zu diesem Thema einige Konversationen direkt mit den Entwicklern der Software.<br />
1. <a href="http://gpgtools.lighthouseapp.com/projects/66001/tickets/2">Diskussion vom Januar 2011</a><br />
2. <a href="http://gpgtools.lighthouseapp.com/projects/66001/tickets/59">Diskussion vom Juni 2011</a><br />
Und siehe da, man erkennt sofort es werden bei Mac OS 10.7 (Lion) viel h&#228;ufiger als in den vorhergehenden Versionen dieser Betriebssystemfamilie sogenannte ACLs (= Access Control Lists, zu deutsch sind damit erweiterte  Zugriffsberechtigungen auf Dateiebene gemeint) verwendet werden.</p>
<p>Beheben wir zun&#228;chst das Problem, und schauen uns dieses Ph&#228;nomen danach noch etwas genauer an (in einem meiner nachfolgenden Beitr&#228;ge).</p>
<p>So nimmt man alle ACLs vom benutzereigenen GnuPG Verzeichnis weg &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ cd ~
$ chmod -R -a# 0 .gnupg</pre></div></div>

<p>&#8230; dann startet man den Agenten erneut und schaut, ob er diesmal l&#228;uft &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ launchctl start org.gpgtools.macgpg2.gpg-agent
$ launchctl list | grep gpg
213	-	org.gpgtools.macgpg2.gpg-agent</pre></div></div>

<p>Die Zahl vorne ist die Proze&#223;kennung des Agenten.</p>
<p>Bei Interesse kann man sich Details zum Agenten anzeigen lassen &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ launchctl list org.gpgtools.macgpg2.gpg-agent</pre></div></div>

<p>&#8230; und das sollte etwa so aussehen.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">{
	&quot;Label&quot; = &quot;org.gpgtools.macgpg2.gpg-agent&quot;;
	&quot;LimitLoadToSessionType&quot; = &quot;Background&quot;;
	&quot;OnDemand&quot; = true;
	&quot;LastExitStatus&quot; = 0;
	&quot;PID&quot; = 213;
	&quot;TimeOut&quot; = 30;
	&quot;ProgramArguments&quot; = (
		&quot;/usr/local/MacGPG2/bin/gpg-agent&quot;;
		&quot;--launchd&quot;;
		&quot;--write-env-file&quot;;
	);
};</pre></div></div>

<p>Und jetzt klappt auch die Ent- und Verschl&#252;sselung wieder, bspw. &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ gpg -d -o decoded.file encoded.file 
Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren.
Benutzer: &quot;Martin Rastetter &lt;martin@baden.de&gt;&quot;
1024-Bit ELG Schlüssel, ID EE827F34, erzeugt 2005-01-09 (Hauptschlüssel-ID D94AFAD0)
gpg: verschlüsselt mit 1024-Bit ELG Schlüssel, ID F3D63379, erzeugt 2008-11-03
      &quot;Fritz Fuchs &lt;fritzle@schwaben.de&gt;&quot;
gpg: verschlüsselt mit 1024-Bit ELG Schlüssel, ID EE827F34, erzeugt 2005-01-09
      &quot;Martin Rastetter &lt;martin@baden.de&gt;&quot;
gpg: Signatur vom Mi 27 Mai 12:01:06 2009 CEST mittels DSA-Schlüssel ID 63525EE3
gpg: Korrekte Signatur von &quot;Fritz Fuchs &lt;fritzle@schwaben.de&gt;&quot;
Haupt-Fingerabdruck  = CA62 6DD9 CE88 4D3D 0621  1343 6806 7B58 6352 5EE3</pre></div></div>

<p>Bestens, ab jetzt k&#246;nnen wir wieder mit GnuPG arbeiten wie wir es bisher gewohnt waren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/probleme-mit-gnupg-mit-mac-os-x-lion/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facetime auf MacOSX – Verbindungsprobleme?</title>
		<link>http://www.entwicklerforum.org/facetime-auf-macosx-verbindungsprobleme</link>
		<comments>http://www.entwicklerforum.org/facetime-auf-macosx-verbindungsprobleme#comments</comments>
		<pubDate>Tue, 15 Mar 2011 17:36:26 +0000</pubDate>
		<dc:creator>Johann Müller</dc:creator>
				<category><![CDATA[Allgemein / Web 2.0]]></category>
		<category><![CDATA[OS - Betriebssysteme]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=1121</guid>
		<description><![CDATA[Seit &#252;ber einem Monat besitze ich nun die MacOSX App &#8220;Facetime&#8221; (also nicht die iPhone App, sondern f&#252;r das Betriebssystem). Als ich nach mehr  als einer Stunde im alleingang versucht habe eine Verbindung zu einem iPhone-User herzustellen – und kl&#228;glich gescheitert bin – habe ich gef&#252;hlt zwei weitere Stunden in verschiedenen Mac / iPhone und [...]]]></description>
			<content:encoded><![CDATA[<p>Seit &#252;ber einem Monat besitze ich nun die MacOSX App &#8220;Facetime&#8221; (also nicht die iPhone App, sondern f&#252;r das Betriebssystem). Als ich nach mehr  als einer Stunde im alleingang versucht habe eine Verbindung zu einem iPhone-User herzustellen – und kl&#228;glich gescheitert bin – habe ich gef&#252;hlt zwei weitere Stunden in verschiedenen Mac / iPhone und Allgemeinen Foren teilweise sogar lustige und besch&#228;ment witzlose Ideen nichtnur gelesen sondern vor lauter Verzweiflung auch versucht. Selbst die Dokumentationen zu FaceTime habe ich durchforstet, ohne einem sinnvollen Ergebnis.</p>
<p><span id="more-1121"></span></p>
<p>Das unverst&#228;ndliche dabei ist: einige User sagen bei ihnen funktioniert alles einwandfrei. Andere haben – genau so wie ich – noch nie eine Verbindung herstellen k&#246;nnen.</p>
<h2>Was ist zu beachten?</h2>
<p>- Der iPhone-User muss in einem WiFi Netz angemeldet sein<br />
- Der MacUser sollte eigentlich nur Internet brauchen (einige User raten trotzdem zum WiFi nutzen, man wei&#223; ja nie wo der Hase liegt)<br />
- Der erste Verbindungsaufbau muss immer &#252;ber die Telefonnummer passieren!<br />
- Manche User schreiben, man sollte nicht mit der Nummer 0 f&#252;r Deutschland, sondern mit +49 beginnen</p>
<h2>So, und wenn man alle diese Punkte ber&#252;cksichtigt hat?</h2>
<p>Alles ist erledigt, selbst das Betriebssystem hat keinerlei neuen Updates zur Verf&#252;gung.<br />
An dieser Stelle hatte ich nun cirka nach 3 Stunden aufgegeben.</p>
<h2>Aber&#8230;</h2>
<p>nun hatte ich irgendwo im Netz von einem Lokalit&#228;tsproblem von FaceTime gelesen.</p>
<p>Lokalit&#228;tsproblem?<br />
Ja!<br />
Riecht ihr schon den Hasenbraten?</p>
<p><span style="color: #000000;"><strong>Eine Umstellung der Sprache im Betriebssystem ist die L&#246;sung!</strong></span></p>
<p>Klingt zu simpel, funktioniert aber!</p>
<p>Wer alle anderen technischen Aspekte (wie dokumentiert und gew&#252;nscht) befolgt hat und trotzdem keine Verbindung aufbauen konnte, dem sollte mit einem Wechsel der Sprache seines MacOSx geholfen sein!</p>
<p>Dies k&#246;nnt ihr &#252;brigens unter <strong>&#8220;Einstellungen &gt; Sprache &amp; Text&#8221;</strong> vornehmen.<br />
Im Regelfall ist hier &#8220;Deutsch&#8221; an oberster Stelle der Liste, zieht hier einfach per Drag &amp; Drop das &#8220;English&#8221; an erste Stelle!</p>
<p>Alles schlie&#223;en, Abmelden (neustart ist nicht n&#246;tig, Abmelden &amp; frisch anmelden reichte bei mir).</p>
<p>Und schon klappts!!</p>
<p><br class="spacer_" /></p>
<p>PS:</p>
<p>Wer nicht sein komplettes Betriebssystem auf englisch umstellen m&#246;chte, der sollte sich mal den <a href="http://www.tj-hd.co.uk/en-gb/languageswitcher/" target="_blank">Language Switcher</a> ansehen. Mit diesem Tool kann man wohl einzelne Programme in ihrer Sprache &#228;ndern und ist nicht gezwungen das komplette Betriebssystem auf englisch zu stellen.</p>
<p>Dieses Tool habe ich allerdings weder verwendet noch getestet!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/facetime-auf-macosx-verbindungsprobleme/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>SSH Convenience</title>
		<link>http://www.entwicklerforum.org/ssh-convenience</link>
		<comments>http://www.entwicklerforum.org/ssh-convenience#comments</comments>
		<pubDate>Fri, 14 May 2010 13:32:32 +0000</pubDate>
		<dc:creator>m.rastetter</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[BSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=761</guid>
		<description><![CDATA[It is common practice to use ssh (= secure shell) for remote administration. Foremost because it is a very secure way doing it, and supported on a vast variety of operating systems: BSD (Free-/Net-/OpenBSD) &#8211; comes along with OpenSSH already Linux (Debian, Fedora, RedHat, SuSE, Ubuntu, etc.) &#8211; mostly comprises an optional OpenSSH software package [...]]]></description>
			<content:encoded><![CDATA[<p>It is common practice to use <a title="SSH Wikipedia" href="http://en.wikipedia.org/wiki/Secure_Shell">ssh (= secure shell)</a> for remote administration. Foremost because it is a very secure way doing it, and supported on a vast variety of operating systems:</p>
<ul>
<li>BSD (Free-/Net-/OpenBSD) &#8211; comes along with <a title="OpenSSH" href="http://www.openssh.com/">OpenSSH</a> already</li>
<li>Linux (Debian, Fedora, RedHat, SuSE, Ubuntu, etc.) &#8211; mostly comprises an   optional <a title="OpenSSH" href="http://www.openssh.com/">OpenSSH</a> software package</li>
<li>Mac OS X &#8211; comes along with <a title="OpenSSH" href="http://www.openssh.com/">OpenSSH</a> already</li>
<li>Unix (AIX, HP/UX, Solaris, etc.) &#8211; comprise all some SSH software   package</li>
<li>Windows &#8211; regularly lacks of useful tools, but <a title="putty" href="http://www.putty.org/">putty</a> fills that gap complete</li>
</ul>
<p>&nbsp;</p>
<p><span id="more-761"></span></p>
<p>Here in this article we&#8217;d like to illuminate the functionality of the ssh-agent in a little more detail. And put some emphasis on the differences between several wide spread operating systems.</p>
<p>Consequently we ought to become acquainted with following tools, their purpose and their usage.</p>
<ul>
<li>ssh-keygen (putty equivalent = puttygen.exe)</li>
<li>ssh-agent (putty equivalent = pageant.exe)</li>
<li>ssh-add (putty equivalent = pageant.exe)</li>
<li>ssh, scp, sftp (putty equivalents = putty.exe, pscp.exe, psftp.exe)</li>
</ul>
<p><br class="spacer_" /></p>
<h5>Prior to anything else install SSH if not yet done.</h5>
<p><strong>Debian</strong> (respectively for Linux)</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">$ aptitude install ssh
...</pre></div></div>

<p><strong>Windows</strong></p>
<p>Extract the putty.zip archive to e.g. <em>c:\bin</em></p>
<p><img class="size-full wp-image-768" title="putty_c_bin" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/putty_c_bin.png" alt="Putty Tools" width="210" height="296" /></p>
<p>Include this directory to the PATH environment variable.</p>
<p><img class="alignnone size-full wp-image-764" title="env_path" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/env_path.png" alt="env_path" width="517" height="463" /></p>
<h5>Now let&#8217;s prepare the ssh-agent</h5>
<p>Before one can use the agent a key pair (public and private key) is required which will be used by the agent to authenticate at the server.</p>
<p><strong>All kinds of Unix</strong></p>
<p>Let&#8217;s start with the easy setup, w/o any further options, otherwise consult the man page.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:~]? ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/martin/.ssh/id_rsa): .ssh/id_rsa_2
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in .ssh/id_rsa_2.
Your public key has been saved in .ssh/id_rsa_2.pub.
The key fingerprint is:
2c:20:51:9b:67:9c:78:eb:c1:4c:43:fc:88:2d:97:3b martin@sequoia.local
&nbsp;
[martin@sequoia:~]? ls -l .ssh
-rw-------   1 martin  staff    408 Sep 26  2009 authorized_keys2
-r--------   1 martin  staff   1743 Sep 26  2009 id_rsa
-r--r--r--   1 martin  staff    408 Sep 26  2009 id_rsa.pub
-rw-------   1 martin  staff   1743 May 14 12:01 id_rsa_2
-rw-r--r--   1 martin  staff    402 May 14 12:01 id_rsa_2.pub
-rw-r--r--   1 martin  staff  15036 May 14 11:03 known_hosts
&nbsp;
[martin@sequoia:~]? fold -76 .ssh/id_rsa_2.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Y/LD6qQaCsKX6zcy/fN6Ndk/0x/o3lFq9oF4Gfq
V+r/Ny3NBJGoprI3MnlmhrWvyijHOOa8yF/83q+CGP9p/5JfRU08hB5ncCvbNRfkxxDpioRMz9Xu
NZ4TSoTu1duuTROIwQfZ6IZCbQwNWRgNLiOsGXeEcbpUDLWVSF/UfItBdM7a/hoJp/JKB9RYSxav
iGQMQqkyajfPPr9RM15kWJQy//enQE+cXo2NaXQ1GWmAs5mdOYgSioztvBZBXOluMd35DQ6jX8XV
4TVRFIa9z8J2jQVZsuLzl/CnmPY/hBPbu6QIMqrReICQJ0K/Mo8j+tz0YwCZgl8w5LnPpx47hw==
 martin@sequoia.local</pre></div></div>

<p>Perhaps you&#8217;ve recognised that I already had a key used before, which I&#8217;d like to keep. You&#8217;re able to use multiple identities!</p>
<p><strong>Windows</strong></p>
<p>Create a key pair (public and private key)</p>
<p>Therefore start <em>puttygen.exe</em> from the command line (after you&#8217;ve added the putty installation directory to the PATH variable) or double-click on the <em>puttygen.exe</em> icon</p>
<p><img class="size-full wp-image-769" title="puttygen" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/puttygen.png" alt="Generate Key Pair" width="478" height="458" /></p>
<p>In the second step while creating a new key with <em>puttygen.exe</em> you&#8217;re securing the key with a passphrase you will remember always!</p>
<p><img class="size-full wp-image-765" title="keypassphrase" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/keypassphrase.png" alt="Select a Passphrase" width="480" height="461" /></p>
<p>Don&#8217;t forget to save the key pair (public and private) in seperate files to the disk.</p>
<h5>Prapare for using the agent</h5>
<p><strong>All kinds of Unix</strong></p>
<p>Append the public key into the file with the name <em>authorized_keys2</em> which resides in the <em>.ssh</em> directory of your users home directory. Create it if it&#8217;s not existing and restrict the writing access for others.<br />
It doesn&#8217;t make any difference whether you created your key pair on Windows by using <em>puttygen.exe</em> or on a Unix system by using <em>ssh-keygen</em>. Only make sure that the public key is added to the <em>authorized_keys2</em> in a similar format as shown here.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:~]? ls -l .ssh
-rw-------  1 martin  staff    408 Sep 26  2009 authorized_keys2
-r--------  1 martin  staff   1743 Sep 26  2009 id_rsa
-r--r--r--  1 martin  staff    408 Sep 26  2009 id_rsa.pub
-rw-------  1 martin  staff   1743 May 14 12:01 id_rsa_2
-rw-r--r--  1 martin  staff    402 May 14 12:01 id_rsa_2.pub
-rw-r--r--  1 martin  staff  15036 May 14 11:03 known_hosts
[martin@sequoia:~]? cat .ssh/id_rsa_2.pub &amp;gt;&amp;gt; .ssh/authorized_keys2
[martin@sequoia:~]? fold -76 .ssh/authorized_keys2
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4scI/a9W2J8QhR2s1ySMoPuQHw266r1mRpKPQ5vM
qK4OrZjmPDi73yvy5jsjKoO5U9sYUOpjmGbJfAlYOmU2T7sNbHocPbLtuSsxhyuzQS5SPY+oyE7k
09H/ZdX5rKj/jqmKg+lVKCeY64tBXNHjXjEhCf1AKosCmAdRdjXr38fQ1OwpxkhGKL8EOqNEGtxG
0y8LUuz5XzZdaoiW2uk3UY9NzOWiEqyPO5YwvcJ7WRrD4pNxVC0Ar+NpbBZpDT0RcnIF4XE3qEh/
57dj3VfLODi4y1/ErwpLPRtpnbvyrR9N9b2y7IGf8IMO/CjCSzosibtNgsztC/U2HGRIUBXAEQ==
 Rastis key for private use
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5Y/LD6qQaCsKX6zcy/fN6Ndk/0x/o3lFq9oF4Gfq
V+r/Ny3NBJGoprI3MnlmhrWvyijHOOa8yF/83q+CGP9p/5JfRU08hB5ncCvbNRfkxxDpioRMz9Xu
NZ4TSoTu1duuTROIwQfZ6IZCbQwNWRgNLiOsGXeEcbpUDLWVSF/UfItBdM7a/hoJp/JKB9RYSxav
iGQMQqkyajfPPr9RM15kWJQy//enQE+cXo2NaXQ1GWmAs5mdOYgSioztvBZBXOluMd35DQ6jX8XV
4TVRFIa9z8J2jQVZsuLzl/CnmPY/hBPbu6QIMqrReICQJ0K/Mo8j+tz0YwCZgl8w5LnPpx47hw==
 martin@sequoia.local</pre></div></div>

<p>Make also sure that a ssh daemon process (sshd) is running. You must be root to start this process.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;"># /etc/init.d/sshd start</pre></div></div>

<p>Or starting the ssh daemon on Mac OS X, you open the sharing preferences and activate <em>remote login</em>. You need administrative rights to do this.</p>
<p><img class="alignnone size-full wp-image-826" title="mac-sharing" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/mac-sharing.png" alt="mac-sharing" width="519" height="417" /></p>
<p><br class="spacer_" /></p>
<p><strong>Windows</strong></p>
<p>The public key generated by putty looks similar but not exactly identical.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">C:\Dokumente und Einstellungen\rasti\Eigene Dateien\ssh-keys&amp;gt;dir
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: 1805-C667
 Verzeichnis von C:\Dokumente und Einstellungen\rasti\Eigene Dateien\ssh-keys
09.04.2010  10:40              .
09.04.2010  10:40              ..
09.04.2010  10:40               869 ssh-private.ppk
09.04.2010  10:39               294 ssh-public.asc
               2 Datei(en)          1.163 Bytes
               2 Verzeichnis(se), 145.506.770.944 Bytes frei
&nbsp;
C:\Dokumente und Einstellungen\rasti\Eigene Dateien\ssh-keys&amp;gt;type ssh-public.asc
---- BEGIN SSH2 PUBLIC KEY ----
Comment: &quot;rsa-key-20100409&quot;
AAAAB3NzaC1yc2EAAAABJQAAAIBpktt0TYXr5jiQu4B/6tHUvoYkeirjq/zGpwUm
B/lPKBE+qZJd1McCXyoOqQxa37LdkTVujxAMj7OQ0VhdGQw2sU0G5oJLzxGwOIUA
3oljIgq1FamB7usFBSjKkKpsfCmz/v9ydVT9xB32ToRYO6e6ywjUlTrmjF5nMvrA
j9o+HQ==
---- END SSH2 PUBLIC KEY ----</pre></div></div>

<p>Thus one has to add the key encryption type before when adding to authorized_keys2 &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">rasti@otherhost:/home/rasti&amp;gt; fold -76 .ssh/authorized_keys2
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIBpktt0TYXr5jiQu4B/6tHUvoYkeirjq/zGpwUmB/lP
KBE+qZJd1McCXyoOqQxa37LdkTVujxAMj7OQ0VhdGQw2sU0G5oJLzxGwOIUA3oljIgq1FamB7usF
BSjKkKpsfCmz/v9ydVT9xB32ToRYO6e6ywjUlTrmjF5nMvrAj9o+HQ==</pre></div></div>

<p>Thats all.</p>
<h5>Let the agent do the authentication</h5>
<p><strong>All kinds of Unix</strong></p>
<p>Start the agent and source its variables to the local environment</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:~]? ssh-agent &amp;gt;ssh-agent-env
[martin@sequoia:~]? . ssh-agent-env
Agent pid 3780</pre></div></div>

<p>Add your identity (multiple are possible) to the agent.<br />
Of course you need to add the secret keys and provide the passphrases to them!</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:~]? ssh-add
Enter passphrase for /Users/martin/.ssh/id_rsa:
Identity added: /Users/martin/.ssh/id_rsa (/Users/martin/.ssh/id_rsa)
&nbsp;
[martin@sequoia:~]? ssh-add .ssh/id_rsa_2
Enter passphrase for .ssh/id_rsa_2:
Identity added: .ssh/id_rsa_2 (.ssh/id_rsa_2)</pre></div></div>

<p><strong>Windows</strong></p>
<p>Load the agent by running <em>pageant.exe</em> either by command line or double-clicking its icon. Then a small icon with a hat on a computer symbol will appear in the toolbar.</p>
<p><img class="alignnone size-full wp-image-766" title="pageant" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/pageant.png" alt="pageant" width="232" height="34" /></p>
<p>Make a right-click on this small icon with the mouse and select add key, and navigate to your private key which is about to be added.</p>
<p><img class="alignnone size-full wp-image-770" title="select-private-key" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/select-private-key.png" alt="select-private-key" width="554" height="397" /></p>
<p>And authenticate your private key with your passphrase &#8230;</p>
<p><img class="alignnone size-full wp-image-767" title="passphrase" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/passphrase.png" alt="passphrase" width="209" height="115" /></p>
<h5>Now we can start and enjoy the benefits of this admittetly quite painful preparation</h5>
<p>None of the prepared systems will require any further password authentication!<br />
This includes login, file copy, command execution etc.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:~]? sftp rasti@testhost.local
Connecting to testhost.local...
sftp&amp;gt; ls Documents
Documents/dump_db.zip        Documents/existingfiles.lst
Documents/newerfiles.lst     Documents/missingfiles.lst
sftp&amp;gt; quit
&nbsp;
[martin@sequoia:~]? scp rasti@testhost.local:~/Documents/modfiles.zip ./Documents/
modfiles.zip                            100% 6462     6.3KB/s   00:00
&nbsp;
[martin@sequoia:Documents]? cat commands.txt
uname
hostname
[martin@sequoia:Documents]? cat commands.txt | ssh -T rasti@testhost.local
Linux
testhost.local</pre></div></div>

<p>The ssh tool comprises a plenty of other options. Which leaves room for many more articles.<br />
One is to use the ssh-agent for more than one host with the agent-forwarding option &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:Documents]? ssh -A rasti@testhost.local
Linux testhost.local 2.6.26-2-xen-amd64 #1 SMP Wed May 13 18:43:45 UTC 2009 x86_64
Last login: Fri May 14 14:40:47 2010 from 1.2.3.4
&nbsp;
rasti@test:~$ ssh -A rasti@demohost.local
Linux demohost.local 2.6.26-2-xen-amd64 #1 SMP Wed May 13 18:43:45 UTC 2009 x86_64
Last login: Mon May  3 13:38:58 2010 from 1.2.3.4
&nbsp;
rasti@demo:~$ hostname
demohost.local</pre></div></div>

<p>Another helpful option is X11 forwarding &#8230;.</p>

<div class="wp_syntax"><div class="code"><pre class="text" style="font-family:monospace;">[martin@sequoia:Documents]? ssh -X rasti@testhost.local
Linux testhost.local 2.6.26-2-xen-amd64 #1 SMP Wed May 13 18:43:45 UTC 2009 x86_64
Last login: Fri May 14 14:57:33 2010 from 1.2.3.4
/usr/bin/X11/xauth:  creating new authority file /home/rasti/.Xauthority
rasti@test:~$ echo $DISPLAY
localhost:10.0
rasti@test:~$ xpdf Documents/Firebird-gfix.pdf &amp;amp;
[1] 5467
rasti@test:~$</pre></div></div>

<p>For this example we used X11 which is shipped with Mac OS X. One not even needs to maintain any of the xhost display access permissions.</p>
<p><img class="alignnone size-full wp-image-818" title="xpdf-ssh" src="http://www.entwicklerforum.org/wp-content/uploads/2010/05/xpdf-ssh.png" alt="xpdf-ssh" width="565" height="526" /></p>
<p>The same way it works with the command line tools on Windows.<br />
The major difference is that X11 is not part of Windows and must be installed seperately.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/ssh-convenience/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby 1.9 parallel auf dem Mac installieren</title>
		<link>http://www.entwicklerforum.org/ruby-1-9-parallel-auf-dem-mac-installieren</link>
		<comments>http://www.entwicklerforum.org/ruby-1-9-parallel-auf-dem-mac-installieren#comments</comments>
		<pubDate>Sun, 02 May 2010 10:10:10 +0000</pubDate>
		<dc:creator>Martin Schmid</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=667</guid>
		<description><![CDATA[Unter dem Apple Betriebssystem MacOS X ist Ruby und Rails bereits installiert. Auf der derzeitigen Version 10.6.3 befindet sich Ruby 1.8.7 (ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]). Jetzt will ich allerdings die neuste Version installieren. Man sollte aber m&#246;glichst nichts am bestehenden Betriebssystem ver&#228;ndern, da viele Programme und Dienste auch auf Ruby zugreifen k&#246;nnen. Also [...]]]></description>
			<content:encoded><![CDATA[<p>Unter dem Apple Betriebssystem MacOS X ist Ruby und Rails bereits installiert. Auf der derzeitigen Version 10.6.3 befindet sich Ruby 1.8.7 (ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]). Jetzt will ich allerdings die neuste Version installieren. Man sollte aber m&#246;glichst nichts am bestehenden Betriebssystem ver&#228;ndern, da viele Programme und Dienste auch auf Ruby zugreifen k&#246;nnen.</p>
<p>Also habe ich Ruby 1.9 so installiert, dass es parallel und nur bei meinem Benutzer installiert wurde.<br />
<span id="more-667"></span></p>
<p>Ich bin wie folgt vorgegangen. Ich habe mich an der Seite <a href="http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard" target="_blank">http://hivelogic.com/articles/compiling-ruby-rubygems-and-rails-on-snow-leopard </a> orientiert, allerdings einige Punkte angepasst.</p>
<p><strong>Pfad im Benutzer anpassen:</strong><br />
Dazu muss die Datei &#8220;.profile&#8221; angepasst oder erstellt werden. Dazu ein Terminal Fenster starten. Mit dem Befehl &#8220;<em>env</em>&#8221; kann man sich die Umgebungsvariablen des Benutzers aufgeben lassen. Dort findet man auch die Variable &#8220;<em>PATH</em>&#8220;. Diese zeigt im Standard zuerst auch den Pfad &#8220;/usr/bin&#8221;, wo sich auch der Link auf die Basis Ruby-Installation befindet. Mit dem Befehl &#8220;which ruby &amp;&amp; ruby -v&#8221; kann man sich den derzeitigen Pfad und die Version von Ruby aufgeben lassen.</p>
<p>Zur&#252;ck zum Anpassen der &#8220;.profile&#8221;-Datei. Mit dem Befehl &#8220;cat .profile&#8221; kann man sich deren Inhalt, sofern vorhanden ausgeben lassen. Im unserem Fall ist sie noch nicht vorhanden. Jetzt ben&#246;tigt man einen Texteditor. Die einfachste L&#246;sung ist der vi (<a title="VI" href="http://linuxseiten.kg-it.de/index.php?index=admin_vim_befehlsuebersicht" target="_blank">Befehls&#252;bersicht VI</a>).</p>
<p>Geben sie dazu in der Shell den Befehl &#8220;vi .profile&#8221; ein und f&#252;gen Sie folgende Zeile ein:</p>
<blockquote><p>export PATH=&#8221;/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH&#8221;</p></blockquote>
<p>Danach mit [Esc] [:][w][q] &#8211; fertig. Der o.g. Blog benutzt den beliebten Mac Editor TextMate. Hier lautet der Befehl &#8220;mate .profile&#8221;. In der Pfad-Anpassung habe ich auch gleich MySQL (&#8220;/usr/local/mysql/bin&#8221;)erg&#228;nzt, weil ich es sp&#228;ter noch installiere.</p>
<p><strong>Ruby herunter laden, kompilieren und installieren:</strong><br />
Zun&#228;chst erzeugen wir uns ein Verzeichnis, in das wir den Quellcode von Ruby laden. Bevor Sie weiter machen, bitte vergewissern Sie sich, dass Ihnen das Passwort des Administrators Ihres Arbeitsplatzes vorliegt. Bei der ersten Benutzung innerhalb der Terminalsession m&#252;ssen Sie das Passwort eingeben.</p>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">sudo mkdir -p /usr/local/src</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">sudo chgrp admin /usr/local/src</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow: hidden;">sudo chmod -R 775 /usr/local/src</div>
<blockquote><p>sudo mkdir -p /usr/local/src<br />
sudo chgrp admin /usr/local/src<br />
sudo chmod -R 775 /usr/local/src</p></blockquote>
<p>Zuerst wird unter dem Pfad &#8220;/usr/local/&#8221; der Ordner &#8220;src&#8221; (source) angelegt und dann die entsprechenden Rechte diesem Ordner zugewiesen. Ich m&#246;chte jetzt nicht auch jeden Linux/Unix Befehl eingehen. Das Internet wimmelt von entsprechenden Anleitungen.</p>
<p>Als n&#228;chstes springen wir in den Ordner &#8220;usr/local/src&#8221; und laden uns die aktuelle Version von Ruby und den RubyGems herunter.</p>
<blockquote><p>cd /usr/local/src<br />
curl -O ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.1-p378.tar.gz<br />
curl -O http://files.rubyforge.vm.bytemark.co.uk/rubygems/rubygems-1.3.6.tgz</p></blockquote>
<p>Je nach Internet-Anbindung kann es einige Zeit dauern.</p>
<p>Jetzt packen wir die Installation aus, bereiten sie auf und danach installieren wir sie.</p>
<blockquote><p>tar xzvf ruby-1.9.1-p378.tar.gz<br />
cd ruby-1.9.1-p378<br />
./configure &#8211;enable-shared &#8211;enable-pthread CFLAGS=-D_XOPEN_SOURCE=1<br />
make<br />
sudo make install<br />
cd ..</p></blockquote>
<p>Damit ist Ruby installiert. Mit dem Befehl &#8220;which ruby &amp;&amp; ruby -v&#8221; sollte das folgende Ergebnis erscheinen. Wenn nicht ist Ihnen ein Fehler unterlaufen.</p>
<blockquote><p>which ruby &amp;&amp; ruby -v<br />
/usr/local/bin/ruby<br />
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.3.0]</p></blockquote>
<p>Das Standard Ruby k&#246;nnen Sie so &#252;berpr&#252;fen:</p>
<blockquote><p>which /usr/bin/ruby &amp;&amp; /usr/bin/ruby -v<br />
/usr/bin/ruby<br />
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]</p></blockquote>
<p>Das war jetzt der schwierigste Schritt. Von nun an arbeiten innerhalb von Ruby und installieren als n&#228;chstes die RubyGems.</p>
<blockquote>
<div>tar xzvf rubygems-1.3.6.tgz</div>
<div>cd rubygems-1.3.6</div>
<div>sudo /usr/local/bin/ruby setup.rb</div>
<div>cd ..</div>
</blockquote>
<div>Jetzt folgen noch die Gems Rails, mysql, mongrel, capistrano, termios und sqlite3 f&#252;r Ruby.</div>
<div>
<blockquote>
<div>sudo gem install rails</div>
<div>sudo gem install mysql &#8212; &#8211;with-mysql-dir=/usr/local/mysql</div>
<div>sudo gem install mongrel &#8211;include-dependencies</div>
<div>sudo gem install capistrano &#8211;include-dependencies</div>
<div>sudo gem install termios<br />
sudo gem install sqlite3-ruby</div>
</blockquote>
</div>
<p>Nat&#252;rlich k&#246;nnen Sie von dem Gems beliebige hinzuf&#252;gen oder entfernen, je nachdem in welchem Umfeld Sie mit Ruby entwickeln.</p>
<p>Heute, 14. Mai 2010 kam ein Update der Gems auf Version 1.3.7 heraus.</p>
<blockquote><p>sudo gem update &#8211;system</p></blockquote>
<p>eingeben und das System datet sich selbst&#228;ndig up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/ruby-1-9-parallel-auf-dem-mac-installieren/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tipps zur Virtualisierung</title>
		<link>http://www.entwicklerforum.org/tipps-zur-virtualisierung</link>
		<comments>http://www.entwicklerforum.org/tipps-zur-virtualisierung#comments</comments>
		<pubDate>Mon, 23 Mar 2009 22:59:09 +0000</pubDate>
		<dc:creator>Martin Schmid</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=590</guid>
		<description><![CDATA[Virtualisierung ist ja seit geraumer Zeit in aller Munde. Ich selbst arbeite mit VMWare schon seit Jahren. Anfangs unter Windows und Linux als Host System. Als ich meinen ersten Intel Mac kaufte stieg ich zun&#228;chst von VMWare auf Parallels um, weil VMWare Fusion noch nicht verf&#252;gbar war. Die Integration von Parallels ins MacOSX war vor [...]]]></description>
			<content:encoded><![CDATA[<p>Virtualisierung ist ja seit geraumer Zeit in aller Munde. Ich selbst arbeite mit <a href="http://www.vmware.de" target="_blank">VMWare</a> schon seit Jahren. Anfangs unter Windows und Linux als Host System. Als ich meinen ersten Intel Mac kaufte stieg ich zun&#228;chst von VMWare auf <a href="http://www.parallels.com" target="_blank">Parallels</a> um, weil VMWare Fusion noch nicht verf&#252;gbar war.</p>
<p>Die Integration von Parallels ins MacOSX war vor 2 Jahren sehr gut. Inzwischen hat VMWare mit Fusion nachgeholt. Der gro&#223;e Vorteil bei VMWare ist aber, dass die Virtualisierungen problemlos zwischen Windows, Linux und MacOSX ausgetauscht werden k&#246;nnen. Die Version der VMWare  Workstation/Fusion bietet nachzu die selben Eigenschaften wie z.B. den Unity Mode, Share Folders etc. auf allen 3 Plattformen. Da wir im Team mit allen Hostsystemen arbeiten, ist VMWare deshalb die erste Wahl f&#252;r uns.</p>
<p><span id="more-590"></span>Deshalb werde ich nun die wichtigsten Tipps zu VMWare zusammenfassen:</p>
<ul>
<li>Festplatte: Es ist generell sinnvoll mit verschiedenen virtuellen Festplatten zu arbeiten. Die h&#246;chste Geschwindigkeit erreicht man dadurch, dass man ein File benutzt und den gesamten Speicherbereich reserviert.</li>
<li>Festplatte: Nachteil hierbei: Wenn man die VMs h&#228;ufig kopiert und austauscht, muss man jedes Mal den reservierten Bereich kopieren und nicht nur den benutzten. Ferner ist es sinnvoll, im 2GB Bl&#246;cken zu arbeiten, wenn man z.B. Fat32 als Filesystem benutzt oder die VMs auf DVD sichern m&#246;chte.</li>
<li>Festplatte: Die VMs auf einer eingebauten Platte benutzen und nicht &#252;ber USB oder andere externe Platten.</li>
<li>Festplatte: Wir verwenden in der Regel 2 virtuelle Festplatte. C: f&#252;r das Betreibssystem und die Programme. D: f&#252;r die Daten und &#196;nderungen. Bei uns l&#228;uft die gesamte Entwicklungsumgebung in einer VM. Die Updates werden zentral gepflegt. Gibt es &#196;nderungen muss nur die C: Platte getauscht werden.</li>
<li>Festplatte: Wenn man noch nicht genau weiss, wieviel Speicher die VMWare man belegen wird, ist es sinnvoll die Festplatte gr&#246;&#223;er in 2 GB Bl&#246;cken anzulegen, aber den Speicher nicht komplett zu reserverieren.</li>
<li>Festplatte: Wenn der Guest eine Linux-Installation wird, sollte man f&#252;r jeden Volumen eine separate virtuelle Festplatte anlegen. So kann man ggf. die einzelnen Platten auf verschiedene Partitionen des Hosts legen. Gleiche gilt nat&#252;rlich auch f&#252;r Windows.</li>
<li>Netzwerk: Braucht die VMs eine eigene IP benutzt man den &#8220;Bridge-Mode&#8221;, ansonten den NAT. Hier benutzt die VM nach au&#223;en die IP des Host.</li>
<li>Speicher: Je mehr, desto besser, wobei der Standby Modus dann l&#228;nger f&#252;r das Restoren braucht.</li>
<li>Zusatzoptionen: Wie Shared Folder, AutoProtect, Application Sharing etc. nur einschalten, wenn wirklich n&#246;tig. Dies mach sowohl das Host-System als auch den Guest langsam.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/tipps-zur-virtualisierung/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux &amp; NTFS are best friends</title>
		<link>http://www.entwicklerforum.org/linux-ntfs-are-best-friends</link>
		<comments>http://www.entwicklerforum.org/linux-ntfs-are-best-friends#comments</comments>
		<pubDate>Wed, 27 Aug 2008 15:13:49 +0000</pubDate>
		<dc:creator>a.laaser</dc:creator>
				<category><![CDATA[OS - Betriebssysteme]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.entwicklerforum.org/?p=243</guid>
		<description><![CDATA[Fast jeder, der die &#220;berschrift liest, wird jetzt denken &#8220;Der Verfasser spinnt&#8221;. Viele Linux (Suse)-Nutzer kennen bestimmt das Problem, dass Festplatten, vorallem auf NTFS formatierte, von Linux (Suse) nicht erkannt werden. Es erscheint eine lange und komplizierte Meldung, die die &#220;berschrift &#8220;Cannot mount Volume&#8221; tr&#228;gt. Da man aber auch auf die Festplatte zugreifen m&#246;chte, sollte [...]]]></description>
			<content:encoded><![CDATA[<p>Fast jeder, der die &#220;berschrift liest, wird jetzt denken &#8220;Der Verfasser spinnt&#8221;.<br />
 Viele Linux (Suse)-Nutzer kennen bestimmt das Problem, dass Festplatten, vorallem auf NTFS formatierte, von Linux (Suse) nicht erkannt werden. Es erscheint eine lange und komplizierte Meldung, die die &#220;berschrift &#8220;Cannot mount Volume&#8221; tr&#228;gt.</p>
<p><span id="more-243"></span></p>
<p>Da man aber auch auf die Festplatte zugreifen m&#246;chte, sollte man sie mounten k&#246;nnen.<br />
 Daf&#252;r brauchen wir zuerst ein kleines Zusatzprogramm, welches auf Linux nicht immer vorinstalliert ist.</p>
<p>Dazu einfach mal Yast &#246;ffnen und links oben in die Suchleiste &#8221; Software installieren oder l&#246;schen&#8221; eingeben und rechts auf das &#8220;Software installieren oder l&#246;schen&#8221; klicken. Es &#246;ffnet sich ein Fenster in welchem wir wieder links oben in die Suchleiste &#8221; ntfs-conf&#8221; eingeben und das kleine Programm, was uns dann rechts angezeigt wird, installieren. (Sollte da kein Programm angezeigt werden nochmals die Rechtschreibung &#252;berpr&#252;fen, ansonsten ist das Programm schon installiert).</p>
<p>Yast wieder schliessen, Computer &#246;ffnen und Weitere Anwendungen ausw&#228;hlen. Links oben in die Suchleiste &#8220;NTFS&#8221; eingeben und schon sehen wir ein kleines, neues Programm &#8220;NTFS-Konfiguration&#8221;. Dieses &#246;ffnen.<br />
 Wenn die Festplatte bereits angeschlossen ist, erscheint beim ersten Mal ein gr&#246;&#223;eres Fenster, dies mit einem Klick auf „Ok“ best&#228;tigen.<br />
 Ansonsten wird dieses Fenster erscheinen :<br />
 <a href="http://www.entwicklerforum.org/wp-content/uploads/2008/08/bildschirmfoto.png"><img class="size-thumbnail wp-image-242 alignleft" title="bildschirmfoto" src="http://www.entwicklerforum.org/wp-content/uploads/2008/08/bildschirmfoto-150x150.png" alt="" width="135" height="135" /></a></p>
<p>Ich hab meine H&#228;kchen in  jedes K&#228;stchen gesetzt, auch in das, welches im unteren Abschnitt erscheint, wenn eine Festplatte angeschlossen ist.<br />
 Die Eingabe mit einem Klick auf &#8220;Schliessen&#8221; best&#228;tigen und nun sollte man auf die Festplatte zugreifen k&#246;nnen.</p>
<p>Das mounten und unmounten geht nur mit root-Rechten.<br />
 ( Linux Terminal : mount  /  umount )</p>
]]></content:encoded>
			<wfw:commentRss>http://www.entwicklerforum.org/linux-ntfs-are-best-friends/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

