lördag 27 juli 2013

Technic launcher kraschar i OS X

Skulle testa på modden tekkit till Minecraft på min Mac som kör OSX 10.8.4, men märkte snabbt att hela applikationen kraschade så fort den kom till "launching minecraft".

Anledningen till detta är att tekkit använder en version av LWJGL (ett java-bibliotek) som bara fungerar med java 1.6, men 10.8.4 använder java 1.7.

Lösningen på problemet är att antingen manuellt installera en nyare version av LWJGL till technic launcher eller att tvinga technic launcher att köras med java 1.6.

Då problemet är känt hos tekkit föredrog jag att tvinga java 1.6 än att pilla med filer i installationen. OSX 10.8.4 har nämligen båda java-binärerna installerade.

För att tvinga technic launcher att använda java 1.6 kan man köra följande:
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -jar TechnicLauncher.jar

En mer permanent lösning är att bygga ett shellskript med följande innehåll:
#!/bin/zsh
cd "${0:h}"
export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
java -jar ./TechnicLauncher.jar


Källor:
StackOverflow.com
technicpack.net

torsdag 4 juli 2013

Extern access för Apache i CentOS

Installerade nyligen CentOS 6.3 och där efter Apache2 via yum. Men jag kunde inte nå Apache utifrån hur jag än gjorde, däremot fungerade ssh fint utifrån.
Jag tittade i Apache-konfigurationen och allt såg riktigt ut, jag tittade i netstat och såg att listen för port 80 accepterade på alla interface.
Till slut prövade jag att i ren desperation stänga ner iptables, det fungerade. Tydligen blockerar CentOS port 80 som standard, men tillåter port 22.

En snyggare lösning än att stänga ner iptables är att lägga till en regel som tillåter port 80.
När jag googlade lösningen skulle det vara okej att köra följande kommando och sedan spara konfigurationen med /sbin/service iptables save.
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

För mig räckte inte detta, det visade sig att ordningen som reglerna står i spelar roll.
Så jag redigerade /etc/sysconfig/iptables manuellt.

Före:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:968]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


Efter:
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6:968]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT



Källa:
StackExchange

Lägga till systemvariabler permanent i bash

Redigera bash_profile
nano ~/bash_profile

Lägg till dina systemvariabler på formatet
export MINVARIABEL=mittVärde

Spara filen, logga ut och logga in igen.

btrfs-problem vid do-release-upgrade

När jag kör en do-release-upgrade får btrfs magiskt slut på utrymme, vilket resulterar i en avbruten do-release-upgrade och ett filsystem där jag inte kan utföra några operationer.

Mitt utgångssystem var Ubuntu Server 12.04 som uppdaterades till 12.10 via do-release-upgrade.

Anledningen till problemet?
btrfs lurar filsystemet om hur mycket ledigt utrymme det finns.
Om du jämför output från följande kommandon kan du också se detta:

df -h /
Size: 72G Used: 57G

sudo btrfs fi df /
total=63.23GB, used=50.43GB

sudo btrfs fi show
size 71.41GB used 54.44GB


Lösningen
Börja med att försöka köra btrfs balanseringskommando:
sudo btrfs balance /

I mitt fall var disken för full för att kunna köra en balansering, jag kunde inte heller ta bort mappar eller flytta filer. Jag började därför med att ta bort enstaka filer. Ibland fick jag försöka flera gånger, men för varje fil jag lyckades ta bort blev nästkommande ännu enklare. Till slut hade jag flyttat och tagit bort tillräckligt för att kunna starta btrfs balance.

När min balansering var slutförd var det dags att reparera min avbrutna do-release-upgrade:
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo reboot

Efter denna procedur skulle jag köra ännu ett steg av do-release-upgrade, döm av min förvåning då alla problem återuppstod igen.
Jag hade ju precis balanserat mitt filsystem?! Efter ett första balanseringsförsök hamnade disken i read only och gick inte att återmontera. Efter två omstarter fick jag till slut igång filsystemet. Dags för ännu en runda av att försöka flytta/slänga filer innan jag kunde starta balanseringen.

Efter denna sista balansering är filsystemet snabbare än någonsin. Ska man använda btrfs bör man inte köra på en äldre kernel än 3.6+!


Källor:
nican
ArchLinux BBS

Lägga till identifieringsnyckel för ssh permanent

Efter att jag hade bråkat med ssh-agent och ssh-add på Ubuntu under någon vecka tröttnade jag. Det går att lägga till nycklarna permanet.
Kopiera din identifieringsnyckel till .ssh-katalogen i din hemmapp.
cp minNyckel.pem ~/.ssh

Redigera sedan konfigurationsfilen för ssh:
nano ~/.ssh/config

Lägg till följande
IdentityFile ~/.ssh/minNyckel.pem

Källa: stackOverflow



måndag 1 juli 2013

do-release-upgrade avbruten

Om du försöker uppgradera Ubuntu från en version till en annan, i mitt fall från 12.04 till 12.10 och do-release-upgrade avbryts kan du inte återuppta uppgraderingen genom att köra kommandot igen.

Lösningen är att köra följande:
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get autoremove
sudo reboot

Efter detta är allt som skulle gjorts med do-release-upgrade slutfört.

Källa: administratosphere