Bash completions von Homebrew unter macOS nutzen

Hallo zusammen,

ich bin heute durch einen Zufall auf die „Bash completions“ gestoßen, die Homebrew
teilweise zu den Paketen mitliefert.

Keine Ahnung wie man diese nutzen kann, habe ich erstmal mit brew install bash-completions
hunderte teilweise für macOS nicht nötige „completions“ installiert und hab passend
folgende Zeilen in meine ~/.bash_profile eingefügt.

if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi

Die Änderungen können mit einem source ~/.bash_profile direkt übernommen werden oder man schließt die Session und öffnet eine Neue.

Jetzt sind z.B. für Git(falls installiert) 125 Completions verfügbar.

Ich habe die nicht benötigten Completions vorerst entfernt und verwende jetzt nur noch die, die von Homebrew bei den installierten Paketen mitgeliefert werden.

Dazu muss am Ende folgende Änderung in der .bash_profile erfolgen.

if [ -d /usr/local/etc/bash_completion.d ]; then
. /usr/local/etc/bash_completion.d/*.bash
fi

Dateien herunterladen und direkt in ein Verzeichnis schreiben

Wie kann ich eigentlich eine gezippte Datei von einem Server laden und dessen Inhalt direkt in ein Verzeichnis schreiben? Ich bin heute auf folgende Lösung gekommen:

curl -L "https://github.com/prometheus/blackbox_exporter/releases/download/v0.4.0/blackbox_exporter-0.4.0.linux-amd64.tar.gz"|tar xzv --strip 1 -C /opt/blackbox_exporter

Hier noch eine kurze Beschreibung der einzelnen Parameter:

-L sorgt dafür, dass CURL dem redirect des Servers folgt.
–strip 1 sorgt dafür, dass tar die erste Ebene des Verzeichnisses entfernt.
-C gibt den Zielordner an, dieser muss existieren.
(mkdir -p /opt/blackbox_exporter)

Homebrew der fehlende Paketmananger für OS X

Was ist ein Paketmananger?

Du kannst mit einem Paketmananger elegant und noch dazu praktisch benötigte Programm-Pakete installieren. Der Paketmanager löst dabei etwaige
Abhängigkeiten, zu anderer Software auf und installiert diese direkt mit.

Homebrew installieren?

Die beste Installationsanleitung befindet sich auch direkt auf der Homepage von Homebrew: Wie installiere ich Homebrew?. Homebrew ist mit wenigen Befehlen einsatzbereit und wird dann so genutzt.

Ein paar „Brew“-Befehle (Ausgabe gekürzt)

Wie kann ich ein bestimmtes Programm suchen?

tim at emmett in ~/
[14:07:00] $ brew search php56
php56 php56-pimple
php56-amqp php56-proctitle
php56-apcu php56-propro

Wie installiere ich ein Paket?

tim at emmett in ~/
[14:07:00] $ brew install php56

Wie kann ich mir lokal installierte Paket anzeigen lassen?

tim at emmett in ~/
[14:07:00] $ brew list
php56

Wie deinstalliere ich ein Paket?

tim at emmett in ~/
[14:07:00] $ brew uninstall php56

Installation von PHP 5.6 unter OS X (Ausgabe gekürzt)


tim at emmett in ~/
[14:07:00] $ brew install php56


tim at emmet in ~/ exited 1
[14:07:00] $ php -v
PHP 5.4.38 (cli) (built: Feb 24 2015 18:23:27)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies

Sublime Text 3 inklusive Plugins

Ein „ordentlichen“ Text-Editor muss her. Mir persönlich ist wichtig, dass der Editor die Möglichkeit besitzt Plugins zu verwenden und dazu noch relativ schnell ist.

Meine Wahl fällt dabei auf Sublime Text 3, diesen Editor bekommst du direkt hier zum „gratis“ Download.

Ich würde dir empfehlen, nach der Installation einen Paketmananger für Sublime Text zu installieren. Dazu startest du Sublime Text und öffnest dann direkt die Konsole des Editor, diese kannst du über View -> Console und fügst dann folgende Zeilen ein:

import urllib.request,os,hashlib; h = 'eb2297e1a458f27d836c04bb0cbaf282' + 'd0e7a3098092775ccb37ca9d6b2e4b7d'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Plugins

SublimeLinter (Framework für Linter)

Wie installierst du jetzt diese Plugins? Das geht dank des Paketmanagers ganz einfach, über die folgende Tastenkombination „Umschalttaste + ⌘ + P“
nun erscheint ein Eingabefenster im Editor. In diesem Dialog fängst du jetzt an das Wort „install“ zu tippen und bereits nach „inst“ sollte der Eintrag „Package Control: Install Package“ erscheinen, diesen Eintrag wählst du aus, nach kurzer Ladezeit erscheinen bereits die ersten Plugins zur Installation.

Die von dir installierten Plugins benötigen teilweise externe Tool. Ich nehme als Beispiel das Plugin „SublimeLinter-contrib-eslint“, es benötigt um JavaScript „linten“ zu können noch das externe Tool eslint.

globale Installation von eslint mit npn(nodeJS) im Terminal

tim at emmett in ~/
[14:07:00] $ npm install -g eslint
/Users/tim/.node/bin/eslint -> /Users/tim/.node/lib/node_modules/eslint/bin/eslint.js
eslint@0.17.1 /Users/tim/.node/lib/node_modules/eslint
├── object-assign@2.0.0
├── escape-string-regexp@1.0.3
├── strip-json-comments@1.0.2
├── user-home@1.1.1
├── xml-escape@1.0.0
├── estraverse-fb@1.3.1
├── globals@6.3.0
├── estraverse@2.0.0
├── text-table@0.2.0
├── debug@2.1.3 (ms@0.7.0)
├── espree@1.12.0
├── mkdirp@0.5.0 (minimist@0.0.8)
├── chalk@1.0.0 (ansi-styles@2.0.1, supports-color@1.3.1, strip-ansi@2.0.1, has-ansi@1.0.3)
├── minimatch@2.0.4 (brace-expansion@1.1.0)
├── doctrine@0.6.4 (isarray@0.0.1, esutils@1.1.6)
├── concat-stream@1.4.7 (inherits@2.0.1, typedarray@0.0.6, readable-stream@1.1.13)
├── optionator@0.5.0 (type-check@0.3.1, deep-is@0.1.3, levn@0.2.5, prelude-ls@1.1.1, wordwrap@0.0.2, fast-levenshtein@1.0.6)
├── js-yaml@3.2.7 (esprima@2.0.0, argparse@1.0.1)
└── escope@2.0.6 (util-extend@1.0.1, esrecurse@1.2.0, es6-weak-map@0.1.2, es6-map@0.1.1)

[OS X] diese Tools brauchst du zum entwickeln!

Welche Entwickler-Tools gehören eigentlich zu der Grundausstattung eines
Softwareentwicklers der unter OS X arbeitet/entwickelt?

Dazu habe ich mir ein paar Gedanken gemacht und dabei ist eine Liste mit
Programmen entstanden die für mich zur Basis-Ausstattung gehören.

Ich hatte eigentlich vor, diese Liste in einem Beitrag zu veröffentlichen,
nur beim Schreiben ist mir aufgefallen, dass die einzelnen Themen teilweise
schon relativ komplex sind. Ich habe mich deshalb entschlossen die Liste aufzuteilen und diesen Beitrag nur als Inhaltsverzeichnis zu verwenden.

1. „Homebrew“ der fehlende Paketmananger für OS X inkl. (GIT, nodeJS, PHP)
2. Sublime Text 3 inkl. Plugins
3. Vagrant verwalte deine Virtuellen-Maschine(n)
4. Ansible Orchestrierung, Konfiguration und Administration deiner Virtuellen-Maschine(n)

Ich werde die einzelnen Teile, nach und nach veröffentlichen und diese Seite
regelmäßig aktualisieren. Ich würde mich über Anregungen und Vorschläge freuen und diese dann gerne hier einfließen lassen.

HP ProLiant N40L – Stromverbrauch

In den Kommentaren zu dem Beitrag HP ProLiant N40L – Lüfter wechseln wurde über ein mysteriöses Problem berichtet. Ein N40L ausgestattet mit einer PicoPSU und 60W & 90W-Leistung startet mit gewechseltem Kühler nicht mehr. Es gab kurz nach dem Start die Bios-Meldung: Fan Missing! Critical System Error. Shutting down in 15 seconds. und der Microserver schaltet sich ab.

Es scheint so, als ob sich der Fehler jetzt erklären lässt. Der Server braucht bereits mit zwei 3.5-Zoll Festplatten, kurze Zeit über 100W-Leistung, die PicoPSU kann die Spannung nicht konstant halten und der Lüfter fällt unter die mindest geforderte Drehzahl von 500UpM.

HP ProLiant N40L – Lüfter wechseln

Ich habe den 120mm-Lüfter des HP Microserver N40L gewechselt, doch leider hat es akustisch wenig gebracht. Ich vermute, der wirklich anstregende Lärm kommt durch den 40mm-Lüfter im Netzteil.

Der be quiet! BQT T12025-MR-PWM Shadow Wings sollte jetzt dafür sorgen, dass der N40L etwas leiser wird, das tut er auch! Den 120mm-Lüfter hört man kaum aber es gibt ein neues Problem.

Die Temperatur im Gehäuse, der Festplatten und der CPU ist relativ stark gestiegen, dies sieht man gut in den folgenden Grafiken.

Original-Lüfter (~1100rpm):Original-120mm-Lüfter

be quiet! BQT T12025-MR-PWM Shadow Wings (~500rpm):be quiet! BQT T12025-MR-PWM Shadow Wings

Die Festplatten hat es nicht so schlimm getroffen, sie werden „nur“ ~8°C wärmer und laufen jetzt unter Volllast bei ~42°C.

Ich werde vorerst zum alten Lüfter zurückkehren und mir eine andere Lösung überlegen.

Wer den 120mm-Lüfter trotzdem wechseln möchte, muss die PIN-Belegung des neuen Lüfters nach dieser Anleitung abändern. Ich denke ein anderer Lüfter, der etwas mehr Durchsatz als der be quiet bringt könnte gut funktionieren, bleibt nur noch das krachende Netzteil.

iOS 5.1 für iPhone 3GS, 4 & 4S ohne rSAP erschienen

Heute ist das iOS 5.1 erschienen, leider ohne das lange erhoffte rSAP-Feature. Ich gehe inzwischen nicht mehr davon aus, dass Apple jemals das Remote-SIM-Access-Profil unterstützen wird.

Seit November gibt es eine gute Nachricht für iPhone 3GS & iPhone 4-Benutzer, es ist ein rSAPserver erschienen, der sich per Jailbreak installieren lässt.