Image for post
Image for post

fish ist eine tolle Alternative für die Shell unter macOS. Sie bietet eine tolle Auto-Completion und lässt sich auf vielfache Weise individualisieren. Am besten an fish gefällt mir, dass die Shell basierend auf früheren Eingaben Vorschläge während des Tippens von Kommandos anbietet. Zur Konfiguration stellt sie ein Web-Interface zur Verfügung. Soweit mir bekannt ist, gibt es das bei keiner anderen Shell.

Installation unter macOS

Die Installation übernimmt der Paketmanager Homebrew

brew install fish

Anschließend muss die Zeile /usr/local/bin/fish der Datei /etc/shells angefügt werden:

cat /etc/shells|grep /usr/local/bin/fish ||sudo sh -c 'echo "/usr/local/bin/fish" >> /etc/shells'

Anschließend macht man die Fish Shell zur Default-Shell auf dem…


Image for post
Image for post

In einem aktuellen Projekt bestand die Aufgabe darin, Information auf unterschiedlichen Screen-Formaten und sowohl in Portrait- als auch Landscape-Orientierung optimal darzustellen.

Flutter macht es einem leicht, Layouts an verschiedene Screen-Größen anzupassen. Dabei kommt die modulare Architektur, die Aufteilung in Widgets zum tragen.

Sehr universell und für viele Projektre verwendbare Widgets sind GridViews. Diesen Typen von Widgets können vielfältig verwendet werden. GridViews lassen auch eine sehr flexible Anpassung an Verschiedene Device-Größen und Orientierungen (Portrait- oder Landscape-Mode) zu. …


In meinem Fall trat die folgende Fehlermeldung im Zusammenhang mit der Übersetzung einer iOS-Version aus einem Ionic-Projekt zusammen. Aber es wird auch andere Situationen geben, die zu dieser Meldung führen:

xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line tools instance

In meinem Fall hat die Eingabe des folgenden Kommandos geholfen, um das Problem zu beheben:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer


ionic serve
Error: Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (64)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.7.2
at module.exports (/Users/ralfweinbrecher/Development/Coursera/Ionic/confusion-ionic/node_modules/node-sass/lib/binding.js:13:13)
at Object.<anonymous> (/Users/ralfweinbrecher/Development/Coursera/Ionic/confusion-ionic/node_modules/node-sass/lib/index.js:14:35)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Module.require (internal/modules/cjs/loader.js:650:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/Users/ralfweinbrecher/Development/Coursera/Ionic/confusion-ionic/node_modules/@ionic/app-scripts/dist/core/bundle-components.js:6:16)

Einfache Lösung:

npm rebuild node-sass


Image for post
Image for post

Dieser Artikel verweist auf den folgenden Artikel: Installation von Homebridge als Docker-Container-Anwendung auf Raspberry Pi

Über die Plugin-Schnittstelle lässt sich Homebridge um weitere Funktionalitäten erweitern. Hier findet man eine Übersicht aller verfügbaren Plugins. Homebridge-Plugins sind Node-Packages. Normalerweise installiert man diese mit dem Kommando:

npm install -g plugin-name

Zur Installation von z.B. dem Netatmo-Plugin verwendet man also den Befehl:

npm install -g homebridge-netatmo

Dabei lädt der Node Package Manager (npm) das jeweilige Paket und seine Abhängigkeiten von der Package Registry herunter und installiert diese wegen der gesetzten Option „-g“ global auf dem System. …


Image for post
Image for post

Raspberry-Pi: Betriebssystem installieren und Grundeinstellungen vornehmen

Über die Installation der Raspian-Distribution gibt es genügend Anleitungen im Netz. Zu beachten ist lediglich die Vorbereitung für den SSH-Zugang. Der ssh-Dienst ist standardmäßig nicht bei neuen Raspian-Images aktiviert. Um ihn zu aktivieren legt man in der /boot-Partition der SD-Karte eine Datei mit dem Namen ssh an.

Im macOS Terminal und gemainteter SD-Karte verwendet man den folgenden Befehl touch /Volumes/boot/ssh

Installation von Docker auf Raspberry Pi

Docker GPG-Schlüssel hinzufügen:

curl -fsSL https://download.docker.com/linux/raspbian/gpg | sudo apt-key add -

Hinzufügen des Repository:

echo "deb [arch=armhf] https://download.docker.com/linux/raspbian stretch stable" | sudo tee /etc/apt/sources.list.d/docker.list

Docker installieren:

sudo apt-get update
sudo apt-get -y install docker-ce

Pi-Benutzer der Docker-Gruppe hinzufügen

sudo usermod -aG docker pi &&…

Benutze nvm, um NodeJS zu installieren

Image for post
Image for post

Schritt 1: Installation von nvm

Benutze das Installations-Skript, um den Node Version Manager zu installieren:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

Anschließend muss das Profile-Skript erneut ausgeführt werden (oder das Terminal neu gestartet werden):

source ~/.bashrc

Überprüfe die nvm-Version

nvm --version
0.33.11

Schritt 2: Installation von NodeJS

Die Installation einer NodeJS-Version mit Hilfe von nvm erfolgt mit dem Kommando:

nvm install <node-version>

Um diese Version als die Default-Version von NodeJS auf dem System festzulegen verwendet man den Befehl:

nvm use <node-version>

Überprüfe die erfolgreiche Installation der NodeJS-Version:

node -v

Upgrade von einer früheren Version:

nvm install <node-version> —reinstall-packages-from=<old-node-version>

Mit der Installation von NodeJS über diesen Weg wird auch npm installiert.


Image for post
Image for post

Das Erzeugen des Release-Builds einer mit dem Ionic-Framework tritt in Xcode die folgende Fehlermeldung auf:

Code Signing Error: (..). has conflicting provisioning settings. (…) is automatically signed for development, but a conflicting code signing identity iPhone Distribution has been manually specified. Set the code signing identity value to “iPhone Developer” in the build settings editor, or switch to manual signing in the project editor.

Code Signing Error: Code signing is required for product type ‘Application’ in SDK ‘iOS 11.3’

Image for post
Image for post

Um dieses Problem zu beheben, öffnet man die Datei ./platforms/ios/cordova/build-release.xconfig im Editor und ändert die Zeilen:

CODE_SIGN_IDENTITY = iPhone Distribution
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Distribution

in

CODE_SIGN_IDENTITY = iPhone Developer
CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer

Fertig. Anschließend gelingt das Code Signing der App.


Wie löscht man bei Docker alle Images oder Container auf einmal?

Image for post
Image for post

Problem: Du benutzt Docker. Du hast im Laufe der Zeit einen Haufen Container und Images erzeugt, die Du nun mit einem mal loswerden möchtest.

Lösung: Achtung: Hiermit löschst Du alle Deine Images oder Container. Es ist nicht möglich, diese wieder herzustellen.

#!/bin/bash
# Delete all containers
docker rm $(docker ps -a -q)
# Delete all images
docker rmi $(docker images -q)

Folgendes Problem tritt auf:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See ‘docker run — help’

Also, was soll das bedeuten?

Die Meldung besagt, dass der aktuelle Benutzer nicht auf die Docker Engine zugreifen kann, da er nicht über die Berechtigung verfügt, die Unix-Socket zu öffnen, um mit dem Dockler Daemon zu kommunizieren.

Ein möglicher Ausweg

Das Problem kann umgangen werden, indem man die docker-Kommandos immer als root ausführt, also mit einem vorangestellten sudo.

Die empfohlende Lösung

Besser ist es aber zur Behebung des Problems, den aktuellen Benutzer zur Gruppe docker hinzufügen. …

About

Ralf Weinbrecher

Irgendwas mit Computern

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store