Welcher VIM-Benutzer kennt das nicht? Man möchte ein Bash-Skript schrieben und sämtliche Kommentare sind Dunkelblau auf schwarz.
Aus diesem Grunde habe ich mal recherchiert, wie ich mit Ubuntu 16.04 mein VIM mit anständigen Farben ausrüsten kann und möchte Euch mit mit meiner Erkenntnis vertraut machen.
vim bietet von Hause aus schon verschiedene Farb-Schemen an. Diese findet ihr im Ordner
/usr/share/vim/vim74/colors
oder im Ordner
/usr/share/vim
Diese Farbschemen tragen die Endung .vim und sind per Default die folgenden:
blue.vim
default.vim
desert.vim
evening.vim
morning.vim
pablo.vim
shine.vim
torte.vim
darkblue.vim
delek.vim
elflord.vim
koehler.vim
murphy.vim
peachpuff.vim
ron.vim
slate.vim
zellner.vim
Testen könnt ihr die Farbschemen, indem ihr in vim den Befehl
:color [farbschema]
eingebt. Ich habe zum Beispiel :color blue eingegeben und schon sah das Editor-Bild wie folgt aus:
Wenn ihr Euer Wunschfarbschema gefunden habt, legt in Eurem Homeverzeichnis eine Konfig-Datei für Vim an
vim ~/.vimrc
oder alternativ (je nach Linux-Distribution in
/etc/vim/vimrc.local
in die Datei fügt ihr einfach eine Zeile mit dem Inhalt
color [farbschema]
hinzu. In meinem Fall habe ich geschrieben color industry
Anschließend wie immer mit :wq speichern und schließen und anschließend sollten die Standardfarben angepasst sein…
Wenn Euch das geholfen hat, freue ich mich über einen „Daumen hoch“ 🙂
Solltet ihr noch Fragen oder eine Meinung dazu haben, freue ich mich über einen Kommentar und werde ihn schnellstmöglich beantworten. Als ambitionierter „Linux-Laie“ baue ich mir oft solche Anleitungen, um im Bedarfsfall selbst wieder nachschlagen zu könenn – aus diesem Grund auch an dieser Stelle diese Anleitung.
Flex DNS ist eine günstige Alternative zu DynDns, NO-IP und ähnliches und basiert auf der Möglichkeit, dass man mit der eigenen Domain auf die eigene Firewall und mittels Portweiterleitung auf eigene Dienste zugreifen kann, auch wenn man keine feste IP-Adresse hat. Angeboten wird diese Technologie über den Anbieter Domain Offensive
Für den Zugriff auf meine Owncloud benötigte ich den Zugriff auf meine dynamische IP-Adresse mittels eines festen Domainnamens. Dafür bieten sich zum derzeitigen Zeitpunkt drei Möglichkeiten:
einen kostenfreien Anbieter wie no-ip.com, selfhost.eu oder ähnliches. Die kostenfreien Angebote sind jedoch immer an Bedingungen geknüpft, wie die Aktivierung eines Links aller 30 Tage
einen DynDns-Account eines Anbieters käuflich erwerben
von meinem Internetprovider (Domain Offensive) eine Subdomain als DynDns Zugang verwenden.
Im konkreten Fall bevorzugte ich die dritte Möglichkeit. Um mittels eines Cron Jobs die den Flex-DNS-Eintrag zu aktualisieren, habe ich das Bash-Skript von dieser Quelle angepasst und zu folgendem vervollständigt und geringfügig korrigiert:
#!/bin/bash
USERNAME="username"
PASSWORD="password"
HOSTNAME="DynDNS.Hostname"
IP=`curl -s http://whatismijnip.nl |cut -d " " -f 5`
ABUSE_LOCK_FILE="/tmp/dyndns.abuse"
LAST_IP_FILE="/tmp/lastip"
LAST_IP=`cat $LAST_IP_FILE`
#lockfile check, lockfile is only used if a abuse result appears
if [ -e "$ABUSE_LOCK_FILE" ]; then
echo "Dyndns abuse lockfile exisits: $ABUSE_LOCK_FILE"
exit 1
fi
#end of lockfile check
if [ "$IP" != "$LAST_IP" ]; then
echo "Current IP: $IP"
RESULT=`curl -s "http://$USERNAME:$PASSWORD@ddns.do.de?myip=$IP"`
echo "FlexDNS says: $RESULT!"
else
echo "IP is still the same: $LAST_IP"
fi
if [ "$RESULT" == "abuse" ]; then
echo "Abuse lock!"
echo "Abuse lock!" &&> "$ABUSE_LOCK_FILE"
fi
echo "$IP" & > "$LAST_IP_FILE"
Vorteil: Das Update wird nur durchgeführt, wenn sich die IP wirklich geändert hat.
Das Bash-Script habe ich auf dem Linux Bbetriebssystem mittels crontab in die regelmäßgie Ausführung hinzugefügt.
Nach der erfolgreicher Installation von Redmine eröffnete sich für mich noch die Anforderung, ein git Repository zur Verfügung zu stellen.
Angelehnt an der originalen Anleitung habe ich die Installation vorgenommen. Ich liste hier die Schritte noch mal ergänzt um ein paar Kleinigkeiten auf.
cd /var/www/redmine/plugins
sudo git clone https://github.com/jbox-web/redmine_bootstrap_kit.git
cd redmine_bootstrap_kit/
sudo git checkout 0.2.4
Als nächstes das Git Hosting Plugin klonen:
# Then Redmine Git Hosting plugin
cd /var/www/redmine/plugins
sudo git clone https://github.com/jbox-web/redmine_git_hosting.git
cd redmine_git_hosting/
sudo git checkout 1.2.0
Installiere gems und migriere Datenbank
cd /var/www/redmine/plugins
sudo bundle install --without development test
Als nächstes überprüft ihr das Gemfile des git_hosting Plugins, um sicherzustellen, dass dort der Bereich „Redmine 3.x“ aktiv und der Bereich „Redmine 2.x“ auskommentiert ist.
Editiert die .gitolite.rc, so dass sie Hooks akzeptiert
su - git
vi (or nano) .gitolite.rc
## Look for GIT_CONFIG_KEYS and make it look like :
GIT_CONFIG_KEYS => '.*',
## Enable local code directory
LOCAL_CODE => "$ENV{HOME}/local"
Als nächstes meldet wieder ab und erzeugt folgende Datei
Fügt den Gitolite Server zur Liste der bekannten Hosts hinzu:
su - redmine
ssh -i ssh_keys/redmine_gitolite_admin_id_rsa git@localhost info
Anschließend solltet ihre Meldung ähnlich der folgenden erhalten:
Als letztes installiert ihr noch den RUBY-Interpreter, falls er nicht schon auf dem System installiert ist.
sudo apt-get install ruby
An dieser Stelle habt ihr Euer Redmine Git Hosting Plugin erfolgreich installiert!
Jetzt aktiviert noch in den Einstellungen das Xitolite bei den Repositories.
Ein einfaches „apt-get install redmine“ reicht nicht mehr, um eine aktuelle Redmine-Installation auf Ubuntu zu installieren. Aus diesem Grund dokumentiere ich hier, wie ich bei mir Redmine installiert habe.
Orientiert an dieser Anleitung poste ich hier meine Arbeitsschritte:
Quelltext von RUBY mittels git herunterladen Apache installieren
cd /var/www
git clone https://github.com/redmine/redmine
Anschließend wird das redmine-repository geklont:
Anschließend wechselt ihr in das redmine-Verzeichnis und wechselt den Branch auf den aktuellen Stable:
cd redmine
git checkout 3.1-stable
Als nächstes bedienen wir uns dem offiziellen „Ruby Paketsystem“, um die Abhängigkeiten für Ruby downzuloaden. Achtet darauf, bei dem Befehl die HTTPS-Verbindung zur Paketquelle anzugeben!
Dafür müssen wir als erstes die Paketquelle in eine Datei schreiben mit dem Befehl:
cat << EOF >> /etc/gemrc
In die Datei schreibt ihr die folgenden Zeilen:
:sources:
- https://rubygems.org
EOF
Anschließend wechselt ihr in das Verzeichnis /var/www/redmine und installiert die Pakete „bundler“ und „nokogiri“
cd /var/www/redmine
gem install --no-ri --no-rdoc bundler nokogiri
hash -r
An dieser Stelle weiche ich von der oben genannten englischen Anleitung ab und gebe meinen externen MySQL-Server an, indem ich die Config kopiere und editiere:
cd config
sudo cp database.yml.example database.yml
sudo vim database.yml
Kopiert noch diese Zeilen in die database.yml:
# Clean up the environment
unset REDMINE_PASSWORD
Nutze Bundler zum installieren erforderlicher gems und deaktiviere nicht genutzte:
cd /var/www/redmine
bundle install --without development test postgresql sqlite rmagick
Konfiguration
Um eine MySQL-Datenbank anzulegen, verbindet Euch mit dem MySQL-Server Eurer Wahl oder legt einen lokalen mittelt apt-get install mysql-server an.
Mit den folgenden Befehlen legt ihr eine mysql-Datenbank mit einem zufääligen Passwort an:
REDMINE_PASSWORD=$(openssl rand -base64 33)
mysql -e "CREATE DATABASE redmine CHARACTER SET utf8;"
mysql -e "CREATE USER 'redmine'@'localhost' IDENTIFIED BY '$REDMINE_PASSWORD';"
mysql -e "GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';"
Redmine
Als nächstes legt ihr einen User „redmine“ an:
adduser --quiet --system --group --gecos 'Passenger user for redmine' --shell /usr/sbin/nologin --home /nonexistent --no-create-home redmine
Korrigiert die Berechtigung für die Konfigurationsdatei:
Solltet ihr an dieser Stelle Berechtigungsprobleme erhalten, versucht es nochmal mit sudo -i.
Als nächstes bereitet ihr die Datenbank vor inklusive Beispieldaten:
# Re-run Bundler to automatically install the right DB adapter now that database.yml is populated
cd /var/www/redmine
sudo bundle install --without development test postgresql sqlite rmagick
# Generate a secret token and protect it
sudo rake generate_secret_token
sudo chmod 0640 config/initializers/secret_token.rb
sudo chgrp redmine config/initializers/secret_token.rb
sudo RAILS_ENV=production rake db:migrate
sudo RAILS_ENV=production REDMINE_LANG=en rake redmine:load_default_data
# Encrypt SCM and LDAP passwords
sudo RAILS_ENV=production rake db:encrypt
Ich werde als Aufruf-URL ein https://host/pm konfigurieren. Dafür ergänze ich in der configuration.yml folgende Zeilen:
# Configuration of the autologin cookie.
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
autologin_cookie_name:
autologin_cookie_path: "/pm"
autologin_cookie_secure: true
Anschließend lege ich einen symbolischen Link an:
ln -s public pm
Optional könnt ihr ungenutzte Module entfernen:
a2dismod access_compat alias authz_groupfile autoindex cgid deflate dir env filter negotiation status > /dev/null
Konfiguriert die SSL-Konfiguration des Apache
cat << EOF > /etc/apache2/sites-available/pm.svc.sdeziel.info-ssl.conf
<VirtualHost _default_:443>
ServerName EUER_SERVERNAME
ServerAdmin webmaster@EUREDOMAIN.DE
ErrorLog /var/log/apache2/redmine-error.log
CustomLog /var/log/apache2/redmine.log combined
SSLEngine On
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
# Passenger user
PassengerUser redmine
# XXX: If NOT using a sub-URI
#DocumentRoot /var/www/redmine/public
# XXX: If using a sub-URI (/pm)
DocumentRoot /var/www/redmine/pm
RailsBaseURI /pm
PassengerAppRoot /var/www/redmine
</VirtualHost>
EOF
Den nachfolgenden Schritt in der Anleitung kann ich nicht nachvollziehen, habe ihn aber dennoch durchgeführt:
„Tweak Passenger performance:“
cat << EOF > /etc/apache2/conf-available/zz-passenger-performance.conf
# Passenger tuning
PassengerMaxPoolSize 2
PassengerMinInstances 1
# XXX: Pick one of those PassengerPreStart
#PassengerPreStart https://pm.svc.sdeziel.info/
#PassengerPreStart https://pm.svc.sdeziel.info/pm
PassengerMaxRequests 5000
PassengerUploadBufferDir /tmp/
# Breaks compatibility with mod_autoindex and mod_rewrite
PassengerHighPerformance on
# Do not reveal too much about the server
ServerTokens Prod
ServerSignature Off
Es empfiehlt sich, nur HTTPS-Verbindungen zuzulassen:
Wenn nach der Installation von MySQL kein Zugriff auf die Datenbank möglich ist, dann liegt das vermutlich an einem Standard-Sicherheitsmechanismus von MySQL 5.6 aufwärts:
in der /etc/mysql/my.cnf ist die Bindung auf localhost eingestellt:
Der Nutzer „root“ geht ausschließlich auf dem localhost. Für Zugriff von außen MUSS ein neuer mysql-Nutzer angelegt werden.