wtorek, 17 lipca 2012

Ubuntu 12.04 LTS - sieć

Polecenia sieciowe

ip addr - wyświetla dostępne interfejsy

Konfiguracja interfejsów

Przechowywana jest w pliku/etc/network/interfaces. Dla jednej karty sieciowej eth0 otrzymującej adres z serwera DHCP wpisy powinny wyglądać następująco:
# definicja pętli zwrotnej
auto lo
iface lo inet loopback
#definicja karty sieciowej
auto eth0
iface eth0 inet dhcp


Zmiana nazwy interfejsu

Lista interfejsów zapisana jest w pliku /etc/udev/rules.d/70-persistent-net.rules. Na końcu każdego wpisu znajduje się wyrażenie NAME="eth1", w którym definiujemy nazwę interfejsu.

Serwer DHCP

sudo apt-get install dhcp3-server - instalacja
W pliku /etc/default/isc-dhcp-server określamy na jakim interfejsie ma działać serwer, np. INTERFACES="eth1". W pliku /etc/dhcp/dhcpd.conf definiujemy konfigurację serwera:
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.254;
option domain-name "mojadomena.org";

subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
range 192.168.1.150 192.168.1.200;
}

- pierwsze dwie linie określają minimalny i maksymalny okres dzierżawy adresu IP, pozostałe opcje ustalają parametry sieci, wpisy range definiują dostępne pule adresów.

piątek, 13 lipca 2012

Rezpozytoria Ubuntu 12.04

Podstawowe

W pliku /etc/apt/sources.list:
deb http://pl.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://pl.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://pl.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://pl.archive.ubuntu.com/ubuntu precise-security main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu precise-security multiverse
deb http://archive.canonical.com/ubuntu precise partner
deb http://extras.ubuntu.com/ubuntu precise main


Dodatkowe

Można dopisać do pliku /etc/apt/sources.list:
deb http://packages.medibuntu.org/ precise free non-free
deb http://linux.dropbox.com/ubuntu precise main
deb http://deb.opera.com/opera/ stable non-free


Po wydaniu komendy sudo apt-get update wyświetlą się błędy GPG, należy dodać klucze publiczne poszczególnych repozytoriów:
sudo apt-get install medibuntu-keyring
wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
sudo apt-key adv --keyserver pgp.mit.edu --recv-keys 5044912E


Aktualizacja i instalacja oprogramowania

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install opera dropbox

Błędy

Po zainstalowaniu dropboksa podczas kolejnej próby zaktualizowania reopozytoriów może pojawić się błąd W: Duplicate sources.list.... Należy usunąć wpis wyświetlonego repozytorium z pliku /etc/apt/sources.list, ponieważ został on dodany w osobnym pliku w katalogu /etc/apt/sources.list.d.

poniedziałek, 9 lipca 2012

Nginx + php5 + php5-fpm

Instalacja na Debianie (testing)/Ubuntu

sudo apt-get install nginx php5 php5-gd php5-sqlite php5-fpm

Instalacja na Bridge Linux/Archlinux

sudo pacman -S nginx php php-gd php-sqlite php-fpm

W /etc/php5/fpm/php.ini ustawiamy opcje dla php, np. włączamy wyświetlanie błędów itp. W Bridge Linux edytujemy plik /etc/php/php.ini i wyłączamy jedną opcję, aby otrzymać: #open_basedir = /srv/http/...

W /etc/php5/fpm/pool.d/www.conf:
listen = /var/run/php5-fpm.sock
- w Ubuntu 12.04 jest domyślnie listen = 127.0.0.1:9000, czyli ustawienie dla php5-cgi, a nie php5-fpm, dlatego trzeba zmienić. W Ubuntu 13.04 nic nie trzeba zmieniać. W Bridge'u/Archu cała konfiguracja zawarta jest w /etc/php/php-fpm.conf i nic nie trzeba zmieniać, ale ścieżka gniazda ma inną postać: listen = /run/php-fpm/php-fpm.sock.

W /etc/nginx/sites-available tworzymy plik (wpis) definiujący nasz serwer i zapisujemy go (w Debianie, Ubuntu) pod dowolną nazwą, np. local.org. W Bridge'u/Archu edytujemy plik /etc/nginx/nginx.conf. Przykładowa zawartość:
server {
   listen 80;
   server_name localhost;
   charset utf-8;
   access_log off;
   root /home/lolek/public_html;
   index index.php;

   location / {
      try_files       $uri $uri/ /index.php;
#lub: try_files       $uri $uri/ /index.php?id=$uri&$args
   }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass   unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }
    location ~ /\.ht { deny all; }
    location ~ /\. { deny all; }
}
- przy czym najważniejszy jest parametr root, który zawiera ścieżkę do katalogu z plikami serwisu, oraz sekcja location ~.\.php$ definiująca sposób przetwarzania wywołań php.
W przypadku Bridge'a/Archa pamiętamy o wprowadzeniu poprawnej ścieżki do gniazda (!), czyli unix:/run/php-fpm/php-fpm.sock. Zmieniamy też fastcgi_params na fastcgi.conf.

Usuwamy dowiązanie /etc/nginx/sites-enabled/default i tworzymy nowe:
ln -s /etc/nginx/sites-available/lolcal.org /etc/nginx/sites-enabled/default

Na koniec restartujemy usługi:
invoke-rc.d php5-fpm restart; invoke-rc.d nginx restart - w Debianie
service php5-fpm restart; service nginx restart - w Ubuntu
rc.d restart php-fpm; rc.d restart nginx - w Bridge Linux

Uwaga: powyższa konfiguracja jest bardzo podstawowa i służyć ma do lokalnych testów, nie uwzględnia więc zagadnień bezpieczeństwa, zwłaszcza związanych z możliwością wykonywania skryptów php.
Ponieważ sporo sieciowych tutoriali zawiera błędy i/lub uproszczenia, poprawnych (czyt. bezpiecznych) konfiguracji trzeba szukać u źródła, czyli na stronie wiki projektu Nginx.

Ubuntu 12.04 LTS - konfiguracja

Wszystkie usługi w oknie "Programy startowe"

sudo sed -i 's/NoDisplay=true/NoDisplay=false/g' /etc/xdg/autostart/*.desktop

Wyłączenie Apport

Apport to system raportowania błędów w działaniu aplikacji.
W /etc/default/apport enabled="0" i ew.: sudo service apport stop

Na dobrą sprawę można odinstalować (zobacz niżej).

Wyłączenie Avahi

Avahi to mechanizm automatycznej konfiguracji sieci i usług sieciowych.
W /etc/default/avahi-daemon: AVAHI_DAEMON_DETECT_LOCAL=0
W /etc/init/avahi-daemon.conf: start on (never and filesystem and started dbus)

Wyłączenie listy użytkowników na ekranie logowania

W /etc/lightdm/lightdm.conf: greeter-hide-users=true

Automatyczne montowanie partycji

sudo blkid - wyświetla unikalne identyfikatory partycji (UUID)
W /etc/fstab:
UUID=3E4B8D313D841927 /media/Dane ntfs-3g defaults,allow-other,locale=pl_PL.UTF-8 0 0
UUID=BD26-FD52 /media/Dane2 vfat defaults,rw,nosuid,nodev,uid=1000,fmask=0000,dmask=0000,codepage=437,iocharset=iso8859-2,shortname=mixed,utf8=1,showexec,flush,uhelper=udisks 0 0

- linia pierwsza dla partycji ntfs, druga dla partycji fat32. W przypadku tej ostatniej pełny dostęp przyznajemy pierwszemu utworzonemu użytkownikowi w systemie o identyfikatorze 1000.

Usuwanie zbędnych pakietów

  • sudo apt-get purge fonts-kacst fonts-kacst-one fonts-khmeros-core fonts-lao fonts-nanum fonts-tlwg-* ttf-indic-fonts-core ttf-punjabi-fonts - zbędne czcionki;
  • sudo apt-get purge whoopsie apport apport-symptoms - usuwamy narzędzie zgłaszające błędy oraz usługę tworzącą raporty awarii;
  • sudo apt-get purge brltty


wtorek, 3 lipca 2012

Pacman

Podstawy

Pacman to menedżer pakietów w dystrybucjach opartych na Archu.

W /etc/pacman.d/mirrorlist:
Server = http://archlinux.limun.org/$repo/os/$arch
Server = http://mirror.chmuri.net/archmirror/$repo/os/$arch
Server = ftp://ftp5.gwdg.de/pub/linux/archlinux/$repo/os/$arch
Server = http://archlinux.mirror.dkm.cz/pub/archlinux/$repo/os/$arch
Server = http://mirror.datacenter.by/pub/archlinux/$repo/os/$arch


Aktualizacja: szczerze mówiąc status repozytoriów najlepiej sprawdzać na tej stronie. Niestety, od czasu do czasu potrzebna jest zmiana repo.

Typowe polecenia

  • pacman -Syu - synchronizacja bazy i upgrade systemu
  • pacman -Ss [-Qs] nazwa - wyszukiwanie pakietu [zainstalowanego]
  • pacman -Si [-Qi] nawza - informacje o pakiecie [zainstalowanym]
  • pacman -Qdt nazwa - lista osieroconych pakietów
  • pacman -S nazwa - instalacja pakietu
  • pacman -Sd nazwa - instalacja pakietu bez sprawdzania zależności
  • pacman -Rns - usunięcie pakietu wraz z zależnościami i plikami konfiguracyjnymi
  • pacman -Sg - lista grup pakietów
  • pacman -Sg grupa - zawartość grupy pakietów


Bridge Linux 2012.5 - konfiguracja

Po instalacji

Ponieważ w Archu następuje migracja do systemu zarządzania systemd, poniższa konfiguracja rc.conf uznana została za przestarzałą, ale jeszcze działa.
W /etc/rc.conf:
HARDWARECLOCK="UTC"
TIMEZONE="Europe/Warsaw"
KEYMAP="pl"
CONSOLEMAP="pl"
LOCALE="pl_PL.UTF8"
DAEMON_LOCALE="yes"
HOSTNAME=nazwa_maszyny

- w przypadku, gdy mamy oprócz Linuksa mamy zainstalowany Windows XP, UTC trzeba zmienić na localtime (jeżeli mamy Windows Vista lub 7 pozostawiamy UTC).

Nowy rc.conf (po upgradzie powinien znajdować się w pliku /etc/rc.conf.pacnew)zawiera tylko ustawienia usług, które mają uruchamiać się podczas startu systemu, np.: DAEMONS=(dbus networkmanager syslog-ng @alsa), a także ustawienia podsystemu RAID, LVM  oraz sieci (adresowanie statyczne). Zgodne z systemd ustawienia zostały przeniesione do osobnych plików. Ustawień zegara dokonujemy w pliku /etc/adjtime:
0.000000 0 0.000000
0
LOCAL # lub UTC

Po utworzeniu pustego pliku warto wydać polecenie: sudo hwclock --set --date="2012-08-01 16:00:00" --localtime [--utc], która ustawi odpowiednie wartości.
Strefa czasowa definiowana jest przez plik /etc/localtime, który jest dowiązaniem do pliku odpowiedniej strefy: /usr/share/zoneinfo/Europe/Warsaw.
Ustawień języka, klawiatury konsoli dokonujemy w pliku /etc/vconsole.conf:
KEYMAP=pl
FONT=lat2-16
FONT_MAP=

Ustawienia języka przechowywane są w pliku /etc/locale.conf:
LANG=pl_PL.UTF-8

Dodatkowo w pliku /etc/locale.gen należy odkomentować odpowiednie wpisy:
en_US.UTF-8 UTF-8
pl_PL.UTF-8 UTF-8

Nazwę komputera umieszczamy w pliku /etc/hostname:
mojkomputer
i pliku /etc/hosts:
127.0.0.1 localhost.localdomain localhost mojhost
::1  localhost.localdomain localhost mojhost

Jeżeli jakiś plik nie istnieje, tworzymy go np. za pomocą polecenia sudo nano /etc/nazwapliku, wpisujemy zawartość i zapisujemy na dysku (CTRL+O, CTRL+X).

W /etc/pacman.conf:
SigLevel=Never //brak sprawdzania autentyczności pakietów
- i dodanie repozytorium dla mate-desktop:
[mate]
Server = http://packages.mate-desktop.org/repo/archlinux/$arch


Upgrade systemu

Aktualizacja systemu zainstalowanego w odległym czasie od daty wydania wersji Bridge Linux 2012.5 nastręcza kilka problemów. Ich rozwiązanie publikowane jest na stronie http://www.archlinux.org/news/. Ostatnio zadziałała następująca procedura:
sudo pacman -Sy
sudo pacman -S pacman
sudo pacman -Syu --ignore glibc filesystem #(to da błędy)
sudo rm /usr/lib/python3.2/site-packages/__pycache__/Reflector.cpython-32.pyc
sudo pacmn -Sd binutils gcc gcc-libs libtool
sudo pacman -S --force filesystem
sudo pacman -Syu --ignore glibc
sudo pacman -Su

Po zainstalowaniu nowego pacmana zaleca się utworzenie odpowiednich kluczy weryfikujących instalowane pakiety:
sudo pacman-key init
sudo --populate archlinux

Jeżeli podczas pierwszej z tych operacji generowanie klucza głównego trwa bardzo długo, w innej konsoli warto wydać polecenie ls -alR /, w miarę potrzeby kilkakrotnie. Po wydaniu drugiego z poleceń trzeba zaakceptować 5 kluczy naciskając "t" + ENTER. Pamiętać należy, że podana wyżej globalna opcja SigLevel=Never w pliku /etc/pacman.conf wyłącza weryfikowanie autentyczności pakietów.

Obsługa drukowania

sudo pacman -S cups cups-pdf ghostscript gsfonts hpoj gutenprint hplip splix

LibreOffice

sudo pacman -S libreoffice-base libreoffice-calc libreoffice-common libreoffice-draw libreoffice-gnome libreoffice-impress libreoffice-math libreoffice-writer hyphen hyphen-pl libmythes mythes-pl hunspell hunspell-pl

Mate-desktop

sudo pacman -S mate mate-extras [1 4 5 6 12]

Kodeki i flash

sudo pacman -S gstreamer0.10-plugins flashplugin

Katalogi użytkownika

sudo pacman -S xdg-user-dirs
- modyfikacja domyślnych nazw w /etc/xdg/user-dirs.default:
DESKTOP=Pulpit
DOWNLOAD=Pobrane
TEMPLATES=Szablony
PUBLICSHARE=Publiczne
DOCUMENTS=Dokumenty
MUSIC=Muzyka
PICTURES=Obrazy
VIDEOS=Wideo

Wydać należy jeszcze polecenie: xdg-user-dirs-update.
Generalnie w katalogu ~/.config powinny znaleźć się dwa pliki: user-dirs.dirs o zawartości:
XDG_DESKTOP_DIR="$HOME/Pulpit"
XDG_DOWNLOAD_DIR="$HOME/Pobrane"
XDG_TEMPLATES_DIR="$HOME/Szablony"
XDG_PUBLICSHARE_DIR="$HOME/Publiczny"
XDG_DOCUMENTS_DIR="$HOME/Dokumenty"
XDG_MUSIC_DIR="$HOME/Muzyka"
XDG_PICTURES_DIR="$HOME/Obrazy"
XDG_VIDEOS_DIR="$HOME/Wideo"
- oraz user-dirs.locale: pl_PL. Podczas pierwszego logowania do systemu Bridge kopiuje do katalogu domowego użytkownika zawartość /etc/skel. Zarówno w tym ostatnim folderze, jak i w katalogu domowym użytkownika utworzonego podczas instalacji można zmienić nazwy folderów ręcznie, np. mv Desktop Pulpit. Przed dokonaniem takich zmian wyloguj się ze środowiska graficznego.

Przeglądarka dokumentów pdf

sudo pacman -S evince
sudo pacman -S cairo

- na pytanie czy usunąć pakiet cairo-ubuntu odpowiadamy twierdząco.

Instalacja Gruba 2

sudo mv /boot/grub /boot/grub-legacy
sudo pacman -R grub sudo pacman -S grub-bios os-prober
sudo grub-install --directory=/usr/lib/grub/i386-pc --target=i386-pc --boot-directory=/boot --recheck --force /dev/sdaX
sudo grub-mkconfig -o /boot/grub/grub.cfg

- oczywiście parametr /dev/sdaX trzeba zastąpić wpisem /dev/sda - jeżeli instalujemy Gruba w MBR (master boot sector) pierwszego dysku, lub /dev/sda6 - jeżeli chcemy zainstalować w sektorze startowym partycji, na której zainstalowaliśmy Bridge'a, np. sda6.

Problemy

Jeżeli po instalacji i restarcie widzimy "nic", być może mamy trefną kartę Intela, ATI lub Nvidii, po naciśnięciu CTRL+ALT+DEL (restart) w menu Gruba naciskamy "e", aby przejść do edycji polecenia wczytującego jądro. Na końcu dodajemy parametr nomodeset. Po uruchomieniu i skonfigurowaniu systemu.


INIT: Id "x" respawning too fast: disabled for 5 minutes

W /etc/inittab:
x:5:respawn:/usr/sbin/lxdm >& /dev/nul ->
Uwaga: ta zmiana powoduje również automatyczne uruchamianie się graficznego menedżera logowania lxdm. Nota bene w tym samym pliku warto zmienić linię definiującą pierwszą konsolę:
c1:2345:respawn:/sbin/agetty --noclear -8 38400 tty1 linux
- dzięki czemu komunikaty pojawiające się podczas startu systemu nie zostaną wyczyszczone i po przełączeniu się ze środowiska graficznego do konsoli (CTRL+ALT+F1) będzie można je podejrzeć.

W /etc/lxdm/lxdm.conf:
session=/usr/bin/startxfce4
- w tym samym pliku można też ustawić temat, tło i inne opcje graficznego menedżera logowania lxdm.

W przypadku długiego uruchamiania się Thunara (domyślny menedżer plików w XFCE) w pliku /usr/share/gvfs/mounts/network.mount ustawiamy:
AutoMount=false
- dzięki czemu start programu nie będzie opóźniany przez sprawdzanie zasobów sieciowych.

Przydatne polecenia

  • mkinitcpio -p [nazwa_jądra] - tworzenie startowego obrazu jądra

poniedziałek, 19 grudnia 2011

Poezja romantyczna

"[Mickiewicz] zupełnie mi wyperswadował, że szumność jest głupstwem, tak w działaniu, jak w mowach, jak w pisaniu, że prawda i prawda tylko może być piękną i ponętną w naszym wieku, że wszystkie ozdóbki, kwiaty stylu są niczym, kiedy myśli nie ma, że wszystko na tej myśli polega i że chcąc być czym teraz, trzeba uczyć się i uczyć, i prawdy wszędzie szukać, nie dając się ułudzić przez błyskotki, które święcą przez czas jakiś jak robaczki na trawie w maju, a potem gasną na wieki."
Zygmunt Krasiński, Listy do ojca

"Poezja przemienia wszystko w piękno; potęguje piękno tego, co jest najpiękniejsze, przydaje piękna rzeczom najbrzydszym, kojarzy zachwyt i przerażenie, zgryzotę i przyjemność, wieczność i przemienność, pod swoim lekkim jarzmem zmusza do zespolenia rzeczy będące ze sobą w zasadniczej sprzeczności. Przekształca wszystko, czego się dotknie [...]
Poeci zwani byli we wcześniejszych epokach świata prawodawcami czy też prorokami [...]. Poeta istotnie posiada i łączy w sobie obydwie te właściwości. [...] uczestniczy w tym, co wieczne, nieskończone, jedyne."
Percy Bysshe Shelley, Obrona poezji (1821), przeł. S. Kumor.