Archive for the ‘Linux’ Category

Problem z kodowaniem znaków podczas przenoszenia bazy?

Sierpień 17th, 2010

W wypadku gdy do tego celu będziemy wykorzystywać phpMyAdmin jesteśmy narażeni na tego typu problemy.Wynika to między innymi z ustawień kodowania połączenia między aplikacja a serwerem bazy.

Jest jednak rozwiązanie, które ograniczy nam sporo cierpienia mimo, iż na początku może odstraszać wielbicieli webowego interfejsu phpMyAdmin. Myślę tu o wbudowanych narzędziach bazy MySQL o nazwie mysqldump oraz mysql. Obsługa ich odbywa się za pomocą konsoli systemowej.

Gdy chcemy eksportować z bazy danych:

mysqldump --user=XXXXXXXX --password=XXXXXXX --databases DB_NAME1 DB_NAME2 DB_NAME3 > /PATH/TO/DUMPFILE.SQL

Gdy chcemy importować do bazy danych:

mysql --verbose --user=XXXXXXXX --password=XXXXXXXX DB_NAME < /PATH/TO/DUMPFILE.SQL

Gdy konfiguracja apache nie pozwala na „php_flag magic_quotes_gpc Off”

Maj 19th, 2010

Na niektórych hostingach bywa tak,  że z pewnych względów poniższy kod nie zadziała, a wskutek tego np ckeditor też poprawnie nie będzie interpretowała tworzonych linków.


php_flag magic_quotes_gpc Off

Rozwiązanie problemu okazało się banalne:


SetEnv MAGIC_QUOTES 0

System dla maszyny z 128MB ramu.

Marzec 24th, 2010

Maszyna ma dobrego procka i będzie potrzebna do testów projektów na przedmiot „Obliczenia równoległe na klastrach”, lecz mała ilość  pamięci ram uniemożliwia instalacje standardowych dystrybucji Linuxa.

W pierwszej kolejności pomyślałem o jakieś bardziej odchudzonej wersji Ubuntu. Szybko trafiłem na Xbuntu, które jak twierdzą twórcy u mnie powinno zadziałać:

You need 192 MB RAM to run the Live CD or 192 MB RAM to install. The Alternate Install CD only requires you to have 64 MB RAM at install time.

Tak więc pobrałem najnowszą stabilną kompilacje (obecnie 9.10) i wypaliłem ją szybciutko na CD. Niestety proces instalacji na mojej maszynie w pewnym momencie się przerywał i już nie chciał za żadne skarby posunąć się dalej. Tak więc spróbowałem wcześniejszej kompilacji z przed roku (8.10), lecz niestety ta próba zakończyła się podobnie.

Poszukałem jeszcze dokładniej i znalazłem modyfikacje Ubuntu o jeszcze mniejszej złożoności.

Flexbuntu jest ekstremalnie okrojoną dystrybucją wymagającą do działania zaledwie 64MB ramu :) Jednak nie było dane jej prawidłowo bootować się na tym komputerze, z niewiadomych mi do tej pory powodów… Więc szukałem dalej…

Następnie spróbowałem ArchLinux który charakteryzuje się dużą wydajnością i małą ilością procesów standardowo włączonych do dystrybucji. W procesie instalacji kierowałem się bardzo dobrze napisaną instrukcją.

Po przejściu procesu instalacyjnego, który nie okazał się tak strasznym jak go malują, komputer się zrestartował i początkowo wszystko szło pięknie … do czasu … moim oczom ukazał się taki ekran:

The superblock could not be read or does not describe a correct ext4
filesystem. If the device is valid and it really contains an ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>

******************* FILESYSTEM CHECK FAILED *************
* Please repair manually and reboot. Note that the root *
* filesystem is currently mounted read-only. To remount *
* it read-write type: mount -n -o remount,rw /          *
* When you exit the mantenance shel the system will     *
* reboot automatically.                                 *
*********************************************************

Give root password for mantenance

Okazało się że dystrybucja losowo przydziela nazwy partycjom przy każdym uruchomieniu, więc trzeba było je bardziej jednoznacznie wyspecyfikować w pliku konfiguracyjnym. Na szczęście każda partycja ma niezmienny UUID, który można podejrzeć wydając polecenie ‘blkid’ w konsoli. Ostatecznie tak musiałem zmodyfikować plik /etc/fstb aby udało się poprawnie uruchomić system.

UUID=b30cadc0-5e0f-4766-98e9-2ae97d53d930 /boot ext2 defaults 0 1
UUID=f61ed654-d7d3-41e0-b301-ce8d60fe910e swap swap defaults 0 0
UUID=c1263d23-c359-42aa-bca0-f518d9963e89 / ext2 defaults 0 1
UUID=57cde885-b368-4575-9434-3db28f2c5c2a /home ext2 defaults 0 1

Tu można trochę więcej poczytać o źródle problemu: http://wiki.archlinux.org/index.php/Persistent_block_device_naming#by-label

Kopiuj i wklej wydaje się tak proste, a jednak…

Styczeń 22nd, 2010

W poczciwym linuksowym edytorze vim wcale takie nie musi być. Szczególnie, gdy jesteśmy przyzwyczajeni do prostego Ctrl+C Ctrl+V. Każdy, kto choć raz skorzystał z tego edytora zrozumie żart:

Vi był najlepszym edytorem tekstu do czasu, kiedy napisano takie, w których wystarczy wpisać tekst, aby pojawił się na ekranie.

Przyznam się, że za każdym razem, gdy potrzebuje tej opcji (raz na miesiąc) to muszę prosić wujka Google o pomoc ;)
I tak sobie pomyślałem, że tu zrobię małą ściągę z tej magicznej opcji tajemniczego edytora Vim ;)

howto vim

Vim zaznaczanie i kopiowanie treści

Po pierwsze Vim ma trzy tryby pracy:

  • poleceń (przechodzimy do niego z innych trybów klawiszem ESC)
  • visual – zaznaczania (przechodzimy do niego z trybu poleceń klawiszem V)
  • insert – pisania (przechodzimy do niego z trybu poleceń klawiszem I)

I teraz:

  • zaznaczanie tekstu: ustawimy kursor na jego początku, włączamy tryb visual i przesuwamy kursor na koniec wybieranego tekstu
  • kopiowanie tekstu do schowka: po zaznaczeniu tekstu wciskamy klawisz Y i jesteśmy przenoszeni do trybu poleceń
  • wklejanie tekstu ze schowka: mając coś w schowku przechodzimy kursorem do miejsca docelowego i w trybie poleceń wciskamy P

W ten oto sposób udało nam się skopiować fragment tekstu :D Gdybyśmy jednak zapragnęli go wyciąć to zamiast klawisza Y wystarczy użyć klawisza X

Dodatkowo warto pamiętać o takich funkcjach jak:

  • cofnie zmian: w trybie poleceń U (ang. undo)
  • ponowienia zmian: w trybie poleceń R (ang. redo)
  • zapis zmian do pliku: w trybie poleceń :w
  • wyjście z zapisaniem zmian: w trybie poleceń :wq
  • wyjście bez zapisania zmian: w trybie poleceń :q!

Udanej zabawy życzę ;P