En av mina Ubuntu-maskiner har oftast inget nätverk vid uppstart. Av någon anledning förväntar sig installationen att det ska finnas nätverk. Av denna anledning väntar den först 40 sekunder på nätverksanslutning och sedan ytterligare 60 sekunder när detta misslyckas.
Under uppstarten står meddelandet "Waiting for network configuration" och "Waiting up to 60 seconds for network configuration".
En lösning på detta är att modifiera skriptet som körs vid uppstart;
sudo nano /etc/init/failsafe.conf
Leta reda på och kommentera bort följande rader:
$PLYMOUTH message --text="Waiting for network configuration..." || :
sleep 40
$PLYMOUTH message --text="Waiting up to 60 more seconds for network configuration..." || :
sleep 59
$PLYMOUTH message --text="Booting system without full network configuration..." || :
lördag 8 juni 2013
onsdag 5 juni 2013
Gerrit och Gitweb i Ubuntu Server
Installation av gerrit & gitweb i Ubuntu server.
Detta är en grundläggande guide som tar med samtliga installationssteg. Guiden är utförd på Ubuntu Server 11, men samma steg bör gälla även för nyare versioner.
Jag har valt att använda OpenJDK och MySQL, men så klart fungerar även andra databaser och JDKer.
Huvudsakligen kommer mina instruktioner från den officiella gerrit-dokumentationen. När artikeln skrevs, 2012, var en del fel i dokumentationen och det var därför jag skrev denna artikel.
Installation av nödvändiga paket
1. Se till att alla paket är uppdaterade
sudo apt-get update
sudo apt-get upgrade
2. Installera nödvändiga paket för denna guide
sudo apt-get install mysql-server apache2 openjdk-7-jre git
The installation will ask you for a root password for the mysql database, choose a secure password. This password is only for the mysql database.
3. Jag väljer att installera gitweb separat, eftersom det kan bli problem om man försöker installera den före Apache:
sudo apt-get install gitweb
Installation av gitweb
1. Redigera konfigurationsfilen för gitweb
sudo nano /etc/gitweb.conf
Ändra
$projectroot = "/var/cache/git";
till
$projectroot = "/home/gerrit2/gerritSite/git";
2. Starta om Apache
sudo /etc/init.d/apache2 restart
3. Lägg till ett användarkonto för Gerrit
sudo adduser gerrit2
Konfigurering av MySQL
1. Nu ska vi skapa tabeller för Gerrit, börja med att starta MySQL som root.
mysql -u root -p
Observera att detta är rootlösenordet till MySQL-databasen och inte till Linux.
2. Skriv av följande rader nedan, tryck enter för varje ny rad. Har du en vettig terminal går det även att göra copy paste. Glöm inte att byta ut "myPassword" mot något säkrare!
CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'myPassword';
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
FLUSH PRIVILEGES;
Avsluta genom att skriva
exit
Installation av Gerrit
1. Byt till gerrit2-användaren.
sudo su gerrit2
2. Gå till hemmappen
cd ~/
3. Ladda hem gerrit (länk är till senaste versionen 2013-06-05)
wget https://gerrit.googlecode.com/files/gerrit-2.5.4.war
4. Kör war-paketet, detta kommer starta en installationsguide.
java -jar gerrit-2.2.1.war init -d gerritSite
5. Starta gerrit
./gerritSite/bin/gerrit.sh start
Gerrit kan också startas om eller stoppas med följande kommandon
./gerritSite/bin/gerrit.sh restart
./gerritSite/bin/gerrit.sh stop
Detta är en grundläggande guide som tar med samtliga installationssteg. Guiden är utförd på Ubuntu Server 11, men samma steg bör gälla även för nyare versioner.
Jag har valt att använda OpenJDK och MySQL, men så klart fungerar även andra databaser och JDKer.
Huvudsakligen kommer mina instruktioner från den officiella gerrit-dokumentationen. När artikeln skrevs, 2012, var en del fel i dokumentationen och det var därför jag skrev denna artikel.
Installation av nödvändiga paket
1. Se till att alla paket är uppdaterade
sudo apt-get update
sudo apt-get upgrade
2. Installera nödvändiga paket för denna guide
sudo apt-get install mysql-server apache2 openjdk-7-jre git
The installation will ask you for a root password for the mysql database, choose a secure password. This password is only for the mysql database.
3. Jag väljer att installera gitweb separat, eftersom det kan bli problem om man försöker installera den före Apache:
sudo apt-get install gitweb
Installation av gitweb
1. Redigera konfigurationsfilen för gitweb
sudo nano /etc/gitweb.conf
Ändra
$projectroot = "/var/cache/git";
till
$projectroot = "/home/gerrit2/gerritSite/git";
2. Starta om Apache
sudo /etc/init.d/apache2 restart
3. Lägg till ett användarkonto för Gerrit
sudo adduser gerrit2
Konfigurering av MySQL
1. Nu ska vi skapa tabeller för Gerrit, börja med att starta MySQL som root.
mysql -u root -p
Observera att detta är rootlösenordet till MySQL-databasen och inte till Linux.
2. Skriv av följande rader nedan, tryck enter för varje ny rad. Har du en vettig terminal går det även att göra copy paste. Glöm inte att byta ut "myPassword" mot något säkrare!
CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'myPassword';
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
FLUSH PRIVILEGES;
Avsluta genom att skriva
exit
Installation av Gerrit
1. Byt till gerrit2-användaren.
sudo su gerrit2
2. Gå till hemmappen
cd ~/
3. Ladda hem gerrit (länk är till senaste versionen 2013-06-05)
wget https://gerrit.googlecode.com/files/gerrit-2.5.4.war
4. Kör war-paketet, detta kommer starta en installationsguide.
java -jar gerrit-2.2.1.war init -d gerritSite
5. Starta gerrit
./gerritSite/bin/gerrit.sh start
Gerrit kan också startas om eller stoppas med följande kommandon
./gerritSite/bin/gerrit.sh restart
./gerritSite/bin/gerrit.sh stop
Mercurial-server och hgweb i Ubuntu Server
Jag installerade Mercurial Server på jobbet. En programvara för att administrera rättigheter och repon till Mercurial. När jag ändå hade det färskt tänkte jag passa på att posta det här.
Jag utgår från att man redan har en färdiginstallerad maskin med Ubuntu Server. Maskinen som jag installerade detta på körde Ubuntu Server 11, men proceduren borde vara precis samma på nyare versioner.
1. Börjar med att se till att alla paket är uppdaterade.
sudo apt-get update
sudo apt-get upgrade
2. Installera mercurial-server och apache2
sudo apt-get install mercurial-server apache2
3. Skapa hgweb.config
sudo nano /var/lib/mercurial-server/repos/hgweb.config
Lägg till följande text i filen:
[collections]
/var/lib/mercurial-server/repos/ = /var/lib/mercurial-server/repos/
4. Skapa index.cgi och folderstruktur
sudo mkdir /var/www/cgi-hg
sudo cp /usr/share/doc/mercurial-common/examples/hgweb.cgi /var/www/cgi-hg/index.cgi
5. Redigera index.cgi
sudo nano /var/www/cgi-hg/index.cgi
Ändra följande rad från:
config = "/path/to/repo/or/config"
till:
config = "/var/lib/mercurial-server/repos/hgweb.config"
6. Lägg till en root-användare för mercurial-server
Kopiera din publika SSH-nyckel till /etc/mercurial-server/keys/root/
Om du behöver skapa en SSH-nyckel kan detta göras med putty-keygen från Windows.
I unixoperativ kan man använda ssh-keygen kommandot.
Efter att SSH-nyckeln blivit tillagd behöver mercurial-server uppdateras för att hitta nya användare.
sudo -u hg /usr/share/mercurial-server/refresh-auth
7. Lägg till fler användare
Börja med att klona ut hgadmin-mappen från servern
clone ssh://hg@your-server/hgadmin
I din utklonade mapp ska du nu skapa följande undermappar:
keys
keys/root
keys/users
För att skapa en användare gör du en ny mapp med användarens namn, du lägger sedan hans SSH-nyckel i denna mappen. Slutligen lägger du detta i antingen root eller users och pushar tillbaka ändringarna.
Exempelvis
keys/root/enAdmin/publikNyckel
keys/users/SvenH/publikNyckel
Om du behöver ta bort en användare så tar du bort hans mapp och pushar in ändringen.
8. Konfigurera Apache
Vi börjar med att skapa en virtuell host åt Apache för att peka ut mercurial-repon.
sudo nano /etc/apache2/sites-available/default
Lägg till följande i botten av filen men ovanför taggen.
Alias /hg /var/www/cgi-hg
DirectoryIndex index.cgi
AddHandler cgi-script .cgi
Options ExecCGI
Order allow,deny
Allow from all
Slutligen, ge Apache access till hg-mapparna
sudo chown www-data:www-data -R /var/lib/mercurial-server/repos
Källor
Mercurial-server http://dev.lshift.net/paul/mercurial-server/docbook.html
Apache Configuration http://redline6561.livejournal.com/362393.html
Jag utgår från att man redan har en färdiginstallerad maskin med Ubuntu Server. Maskinen som jag installerade detta på körde Ubuntu Server 11, men proceduren borde vara precis samma på nyare versioner.
1. Börjar med att se till att alla paket är uppdaterade.
sudo apt-get update
sudo apt-get upgrade
2. Installera mercurial-server och apache2
sudo apt-get install mercurial-server apache2
3. Skapa hgweb.config
sudo nano /var/lib/mercurial-server/repos/hgweb.config
Lägg till följande text i filen:
[collections]
/var/lib/mercurial-server/repos/ = /var/lib/mercurial-server/repos/
4. Skapa index.cgi och folderstruktur
sudo mkdir /var/www/cgi-hg
sudo cp /usr/share/doc/mercurial-common/examples/hgweb.cgi /var/www/cgi-hg/index.cgi
5. Redigera index.cgi
sudo nano /var/www/cgi-hg/index.cgi
Ändra följande rad från:
config = "/path/to/repo/or/config"
till:
config = "/var/lib/mercurial-server/repos/hgweb.config"
6. Lägg till en root-användare för mercurial-server
Kopiera din publika SSH-nyckel till /etc/mercurial-server/keys/root/
Om du behöver skapa en SSH-nyckel kan detta göras med putty-keygen från Windows.
I unixoperativ kan man använda ssh-keygen kommandot.
Efter att SSH-nyckeln blivit tillagd behöver mercurial-server uppdateras för att hitta nya användare.
sudo -u hg /usr/share/mercurial-server/refresh-auth
7. Lägg till fler användare
Börja med att klona ut hgadmin-mappen från servern
clone ssh://hg@your-server/hgadmin
I din utklonade mapp ska du nu skapa följande undermappar:
keys
keys/root
keys/users
För att skapa en användare gör du en ny mapp med användarens namn, du lägger sedan hans SSH-nyckel i denna mappen. Slutligen lägger du detta i antingen root eller users och pushar tillbaka ändringarna.
Exempelvis
keys/root/enAdmin/publikNyckel
keys/users/SvenH/publikNyckel
Om du behöver ta bort en användare så tar du bort hans mapp och pushar in ändringen.
8. Konfigurera Apache
Vi börjar med att skapa en virtuell host åt Apache för att peka ut mercurial-repon.
sudo nano /etc/apache2/sites-available/default
Lägg till följande i botten av filen men ovanför taggen.
Alias /hg /var/www/cgi-hg
DirectoryIndex index.cgi
AddHandler cgi-script .cgi
Options ExecCGI
Order allow,deny
Allow from all
Slutligen, ge Apache access till hg-mapparna
sudo chown www-data:www-data -R /var/lib/mercurial-server/repos
Källor
Mercurial-server http://dev.lshift.net/paul/mercurial-server/docbook.html
Apache Configuration http://redline6561.livejournal.com/362393.html
måndag 27 maj 2013
Failed to add service – already in use
När jag försökte starta en OpenGL-applikation (minecraft) i Raspbian (Debian) på min Raspberry Pi möttes jag av felmeddelandet:
Failed to add service – already in use
Problemet berodde på att jag hade gett grafikdelen för lite minne, något som ställde till problem även om jag körde med X-forwarding.
Lösningen? Kör sudo raspi-config, gå in på 8 Advanced Options och där efter A3 Memory Split. Ställ upp mängden GPU-minne (jag valde 128MB), spara och starta om.
Failed to add service – already in use
Problemet berodde på att jag hade gett grafikdelen för lite minne, något som ställde till problem även om jag körde med X-forwarding.
Lösningen? Kör sudo raspi-config, gå in på 8 Advanced Options och där efter A3 Memory Split. Ställ upp mängden GPU-minne (jag valde 128MB), spara och starta om.
Problem med locale i debian och ubuntu
Jag hade problem både på Ubuntu server och Debian (Raspian) att locale krånglade och spottade felmeddelanden som exempelvis "locale: Cannot Set LC_ALL to default locale: No such file or directory.".
Vanliga tips är att köra locale-gen, update-locale eller att köra dpkg-reconfigure locales. Om man kör via ssh bör man se till att den maskin man kör ssh-klienten på använder locales som finns i den maskin som kör ssh-servern. Tyvärr löste inget av detta mitt problem.
Lösningen var att manuellt redigera filen /etc/default/locale .
Min fil såg ut så här först:
# File generated by update-locale
LANG=en_US.UTF-8
Efter mina ändringar såg den ut så här:
LANG=en_US.UTF-8
LC_ALL="en_US.UTF-8"
LANGUAGE="en_UTF.UTF-8"
Efter jag sparat filen, loggade jag ut och loggade in igen. Nu fungerar locales ordentligt!
Vanliga tips är att köra locale-gen, update-locale eller att köra dpkg-reconfigure locales. Om man kör via ssh bör man se till att den maskin man kör ssh-klienten på använder locales som finns i den maskin som kör ssh-servern. Tyvärr löste inget av detta mitt problem.
Lösningen var att manuellt redigera filen /etc/default/locale .
Min fil såg ut så här först:
# File generated by update-locale
LANG=en_US.UTF-8
Efter mina ändringar såg den ut så här:
LANG=en_US.UTF-8
LC_ALL="en_US.UTF-8"
LANGUAGE="en_UTF.UTF-8"
Efter jag sparat filen, loggade jag ut och loggade in igen. Nu fungerar locales ordentligt!
Etiketter:
linux,
problemlösning,
raspberry,
ubuntu server
måndag 1 april 2013
Wireshark under OSX 10.8 Mountain Lion
Wireshark kräver X11 för att köras under OSX. I och med OSX 10.8 ingår inte längre X11 och Apple hänvisar användare till xquartz.
När jag försökte köra Wireshark tillsammans med Xquartz märkte jag att inga fönster öppnas även om programmet visas som det är startat. En workaround är att starta Xquartz, öppna en Xterm i Xquartz och sedan köra följande:
open /Applications/Wireshark.app/
Nu kommer Wireshark att starta upp normalt.
När jag försökte köra Wireshark tillsammans med Xquartz märkte jag att inga fönster öppnas även om programmet visas som det är startat. En workaround är att starta Xquartz, öppna en Xterm i Xquartz och sedan köra följande:
open /Applications/Wireshark.app/
Nu kommer Wireshark att starta upp normalt.
tisdag 5 februari 2013
Rensa sökcache i Windows
Om indexering är aktiverat i Windows 7 kommer det att skapas det cachefiler, Windows.edb samt tillhörande *.ci-filer. Antalet filer och utförda sökningar påverkar cachestorleken.
I min utvecklingsdator där jag regelbundet söker i källkod och har ett stort antal filer är cachestrukturen över 5GB stor. Då maskinen har en liten SSD var det dags att utföra en rensning.
Öppna kontrollpanelen, gå till Indexing Options. Tryck på modify-knappen, bocka ur samtliga platser.
Tryck där efter på Advanced-knappen, tryck där efter på Rebuild. Nu kommer Windows att rensa all cache.
Om du behöver cache, gå tillbaka till indexing options, lägg till de platser du behöver. Nu kan du antingen välja att göra en rebuild igen för att låta cachen återskapas direkt eller trycka close och låta cachen skapas vid behov.
Även om alla platser är urbockade kommer indexeringen inte bli helt inaktiverad. Vill du inaktivera indexeringen gör du så här:
Gå till Control Panel -> Administrative tools -> Services.
Dubbelklicka på Windows Search, välj disabled och tryck där efter på stop.
Om du däremot bara vill stänga av indexering för en specifik hårddisk går även detta att göra. Öppna My Computer, högerklicka på en hårddisk, välj properties. Bocka sedan ur rutan
"Allow files on this drive to have contents indexed in addition to file properties".
I min utvecklingsdator där jag regelbundet söker i källkod och har ett stort antal filer är cachestrukturen över 5GB stor. Då maskinen har en liten SSD var det dags att utföra en rensning.
Öppna kontrollpanelen, gå till Indexing Options. Tryck på modify-knappen, bocka ur samtliga platser.
Tryck där efter på Advanced-knappen, tryck där efter på Rebuild. Nu kommer Windows att rensa all cache.
Om du behöver cache, gå tillbaka till indexing options, lägg till de platser du behöver. Nu kan du antingen välja att göra en rebuild igen för att låta cachen återskapas direkt eller trycka close och låta cachen skapas vid behov.
Även om alla platser är urbockade kommer indexeringen inte bli helt inaktiverad. Vill du inaktivera indexeringen gör du så här:
Gå till Control Panel -> Administrative tools -> Services.
Dubbelklicka på Windows Search, välj disabled och tryck där efter på stop.
Om du däremot bara vill stänga av indexering för en specifik hårddisk går även detta att göra. Öppna My Computer, högerklicka på en hårddisk, välj properties. Bocka sedan ur rutan
"Allow files on this drive to have contents indexed in addition to file properties".
Prenumerera på:
Inlägg (Atom)