Archive for category Linux

Instalacja lokalnego pakietu w połączeniu z rozwiązywaniem zależności (polecenie gdebi)

Jedną z bardziej irytujących rzeczy podczas instalacji nowego pakietu przy użyciu polecenia dpkg jest brak rozwiązywania zależności. Powoduje to, że zamiast zainstalować pakiet musimy ręcznie doinstalowywać pakietu z repozytorium.

Brakuje możliwości takiej instalacji pakietu jak robi to polecenie yum:

yum localinstall nazwa_pakietu.rpm

Polecenie to zainstaluje wybrany pakiet jednocześnie rozwiązując zależności przy użyciu dostępnych repozytoriów.

Użycie polecenia dpkg może wyglądać następująco (próba instalacji Picasy w Ubuntu):

# dpkg -i picasa_3.0-current_amd64.deb
Zaznaczenie poprzednio niezaznaczonego pakietu picasa.
(Odczytywanie bazy danych ... 299273 files and directories currently installed.)
Rozpakowanie picasa (z picasa_3.0-current_amd64.deb) ...
dpkg: problemy z zależnościami uniemożliwiają skonfigurowanie picasa:
 picasa zależy od libc6-i386 (>= 2.2); jednakże:
  Pakiet libc6-i386 nie jest zainstalowany.
 picasa zależy od ia32-libs; jednakże:
  Pakiet ia32-libs nie jest zainstalowany.
 picasa zależy od lib32asound2; jednakże:
  Pakiet lib32asound2 nie jest zainstalowany.
 picasa zależy od lib32z1; jednakże:
  Pakiet lib32z1 nie jest zainstalowany.
dpkg: błąd przetwarzania picasa (--install):
 problemy z zależnościami - pozostawiony nieskonfigurowany
Przetwarzanie wyzwalaczy dla gconf2...
Wystąpiły błędy podczas przetwarzania:
 picasa

W przypadku dystrybucji opartych o Debiana można użyć polecenia gdebi. Pozwoli ono na zainstalowanie pakietu i jednoczesne rozwiązanie jego zależności. Instalacja Picasy przy użyciu tego narzędzia wygląda tak:

# gdebi picasa_3.0-current_amd64.deb
Reading package lists... Done
Building dependency tree        
Reading state information... Done
Building data structures... Done
Building data structures... Done  
Wymaga instalacji poniższych pakietów:
ia32-libs  lib32asound2  lib32bz2-1.0  lib32gcc1  lib32ncurses5  lib32stdc++6  lib32v4l-0  lib32z1  libc6-i386
Image management application from Google
 Picasa is software that helps you instantly find, edit and share all

Jak widać od razu zostaje zaprezentowana lista dodatkowych pakietów do instalacji, jak się zgodzimy na ich instalację to zostaną pobrane i zainstalowane.

Źródła

Tags: , ,

Zmiana rozdzielczości w X-server przy użyciu polecenia

Od czasu do czasu muszę podłączyć laptopa do rzutnika, co w moim przypadku wiąże się z reguły z koniecznością zmiany rozdzielczości na niższą. Można zrobić oczywiście przy pomocy menu konfiguracyjnego i wybranie odpowiedniej opcji, ale chciałbym to móc zrobić przy użyciu polecenia.

Polecenie które umożliwia zarządzanie rozdzielczością wyświetlania na ekranie nazwy się xrandr. Pozwala ono na ustawienie rozmiaru oraz orientacji ekranu. Domyślnie zdefiniowane rozdzielczości można sprawdzić przy pomocy przełącznika -q:

$ xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 175, current 1920 x 1200, maximum 1920 x 1200
default connected 1920x1200+0+0 0mm x 0mm
   1920x1200      50.0*    51.0     52.0     53.0  
   1920x1080      54.0  
   1680x1050      55.0     56.0

Jeżeli mam ochotę na ustawienie rozdzielczości 1680×1050, wystarczy że wydam polecenie:

$ xrandr -s 1

Numeracja rozdzielczości zaczyna się od zera.

To oczywiście jest najprostsze użycie tego polecenia. Można także definiować własne tryby, łącznie z takimi gdzie obszar pulpitu jest większy od rozdzielczości ekranu. Można także zdefiniować własny kształt ekranu, np. w formie trapezu. Pozwoli on na kompensację błędnego działania rzutnika (przykład ze strony MAN polecenia):

xrandr --fb 1024x768 --output VGA --transform 1.24,0.16,-124,0,1.24,0,0,0.000316,1

Źródła

Tags: , , ,

Instalacja Oracle 11g na RedHacie 5

Krótki opis instalacji Oracle 11g w systemie RHEL 5. Punkt po punkcie tak jak to wyglądało w mojej sytuacji.

  1. Wyłączenie SELinuksa.

    SELinux jakoś do końca nie chciał mi działać z Oraclem. Uparcie nie pozwalał na otwarcie niektórych plików i na uruchomienie bazy danych. Ponieważ moja maszyna nie jest narażona za bardzo na kontakt ze światem zewnętrznym, to po prostu go wyłączyłem na stałe. Najłatwiej to zrobić poprzez edycję pliku /etc/sysconfig/selinux i zmianę wartości parametru SELINUX:

    6
    SELINUX=disabled

    Teraz pozostaje restart maszyny i i SELinux powinien już być wyłączony.

  2. Dodanie nazwy serwera do /etc/hosts.

    Należy się upewnić, że można prawidłowo rozwiązać nazwę serwera, najprościej poprzez umieszczenie odpowiedniego wpisu w pliku /etc/hosts. W moim przypadku wyglądała ona tak:

    4
    192.168.122.50  oracle
  3. Konfiguracja parametrów jądra (wg dokumentacji)

    Można także skonfigurować odpowiednie parametry jądra systemu. Ja pominąłem tek krok, ale dokumentacja go zaleca, więc można do pliku /etc/sysctl.conf dodać takie linie:

    kernel.shmall = 2097152
    kernel.shmmax = 2147483648
    kernel.shmmni = 4096
    # semaphores: semmsl, semmns, semopm, semmni
    kernel.sem = 250 32000 100 128
    net.ipv4.ip_local_port_range = 1024 65000
    net.core.rmem_default = 4194304
    net.core.rmem_max = 4194304
    net.core.wmem_default = 262144
    net.core.wmem_max = 262144

    Należy pamiętać o tym, aby parametr kernel.shmmax nie był większy niż połowa dostępnej ilości pamięci RAM.

  4. Instalacja dodatkowych bibliotek.

    W przypadku Oracla należy doinstalować kilka dodatkowych pakietów:

    yum install binutils elfutils-libelf glibc glibc-common libgcc \
        libstdc++ make elfutils-libelf-devel glibc-devel gcc gcc-c++ \
        libstdc++-devel unixODBC libaio libaio-devel unixODBC-devel \
        'sysstat*' 'compat-libstdc++*'
  5. Konfiguracja użytkownika dla Oracla.

    Dobrze jest uruchomić serwer na koncie oddzielnego użytkownika, którego należy utworzyć i odpowiednio skonfigurować.

    Dodanie nowego konta wraz z odpowiednimi grupami:

    groupadd oinstall
    groupadd dba
    groupadd oper
    groupadd asmadmin

    useradd -g oinstall -G dba,oper,asmadmin oracle
    passwd oracle

    Ustawienie odpowiednich ograniczeń dla użytkownika oracle, w pliku /etc/security/limits.conf należy umieścić takie linie:

    50
    51
    52
    53
    oracle    soft    nproc   2047
    oracle    hard    nproc   16384
    oracle    soft    nofile  1024
    oracle    hard    nofile  65536

    Należy się jeszcze upewnić, że w pliku /etc/pam.d/system-auth znajduje się taka linia:

    18
    session     required      pam_limits.so

    Ostatnim krokiem będzie zdefiniowanie odpowiednich zmiennych środowiskowych dla użytkownika oracle w pliku /home/oracle/.bash_profile:

    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    export ORACLE_HOSTNAME=oracle
    export ORACLE_BASE=/opt/oracle/oracle
    export ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
    export ORACLE_SID=baza
    export ORACLE_TERM=xterm
    export PATH=/usr/sbin:$PATH
    export PATH=$ORACLE_HOME/bin:$PATH
    export ORA_OWNR="oracle"

    export JAVA_HOME="/etc/alternatives/java_sdk"

    export PATH=.:${JAVA_HOME}/bin:${PATH}:$HOME/bin:$ORACLE_HOME/bin
    export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin

    export LD_LIBRARY_PATH=$ORACLE_HOME/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
    export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib

    export CLASSPATH=$ORACLE_HOME/JRE
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
    export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib

    export THREADS_FLAG=native

    Należy zwrócić w szczególności uwagę na miejsce, gdzie ma zostać umieszczona baza danych Oracle, nazwę serwera czy też użytkownika i odpowiednio je dostosować do własnych potrzeb.

  6. Utworzenie katalogu do instalacja.

    Teraz jeszcze należy utworzyć odpowiedni katalog, w którym zostanie zainstalowana baza danych:

    mkdir -p /opt/oracle
    chown -R oracle:oinstall /opt/oracle
    chmod -R 770 /opt/oracle
  7. Instalacja bazy danych Oracle

    Instalację bazy danych należy wykonać, będąc użytkownikiem oracle. Należy pamiętać, że w czasie instalacji będzie potrzebny dostęp do serwera X Window (jeżeli nie zadziała to przy użyciu komendy su lub sudo zawsze można zalogować się na serwer przy użyciu polecenia ssh -X oracle@localhost).

    Jako użytkownik oracle należy uruchomić skrypt runInstaller. Sprawdzi on środowisko i następnie uruchomi właściwy instalator graficzny. Podczas niego należy odpowiedzieć na szereg pytań, poniżej zrzuty ekranu z mojej instalacji:

    Jednym z ostatnich kroków instalacji jest konieczność uruchomienia dwóch skryptów: orainstRoot.sh oraz root.sh.

    Należy pamiętać, że skrypty te należy uruchomić na uprawnieniach użytkownika root:

    # /opt/oracle/oraInventory/orainstRoot.sh
    Changing permissions of /opt/oracle/oraInventory to 770.
    Changing groupname of /opt/oracle/oraInventory to oinstall.
    The execution of the script is complete
    # /opt/oracle/oracle/product/11.1.0/db_1/root.sh
    Running Oracle 11g root.sh script...

    The following environment variables are set as:
        ORACLE_OWNER= oracle
        ORACLE_HOME=  /opt/oracle/oracle/product/11.1.0/db_1

    Enter the full pathname of the local bin directory: [/usr/local/bin]:
       Copying dbhome to /usr/local/bin ...
       Copying oraenv to /usr/local/bin ...
       Copying coraenv to /usr/local/bin ...


    Creating /etc/oratab file...
    Entries will be added to the /etc/oratab file as needed by
    Database Configuration Assistant when a database is created
    Finished running generic part of root.sh script.
    Now product-specific root actions will be performed.
    Finished product-specific root actions.
  8. Automatyczny start instancji bazy danych

    W pliku /etc/oratab należy zdefiniować, jakie instancje bazy danych będą automatycznie uruchamiane podczas startu bazy danych. W ostatniej kolumnie należy zmienić N na Y:

    1
    baza:/opt/oracle/oracle/product/11.1.0/db_1:Y

    Teraz czas na utworzenie odpowiednich plików startowych:

    • /etc/sysconfig/oracle – definicja zmiennych środowiskowych, używanych w skryptach startowych
      1
      2
      3
      ORACLE_BASE=/opt/oracle/oracle
      ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1
      ORACLE_OWER="oracle"
    • /etc/init.d/oracle – skrypt, który umożliwia uruchomienie i zatrzymanie bazy danych
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      #!/bin/bash
      #
      #       /etc/rc.d/init.d/oracle
      #
      # chkconfig: 345 98 02
      # description: Uruchomienie bazy danych Oracle

      # Source function library.
      . /etc/init.d/functions


      if [ -f /etc/sysconfig/oracle ] ; then
              . /etc/sysconfig/oracle
      fi

      start() {
              echo "Starting Listener: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/lsnrctl start"

              echo "Starting Oracle Database: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"

              return 0
      }

      stop() {
              echo "Shutting down Oracle Database: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"

              echo "Starting Listener: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/lsnrctl stop"

              return 0
      }

      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          restart)
              stop
              start
              ;;
          *)
              echo "Usage: oracle {start|stop|restart}"
              exit 1
              ;;
      esac
      exit $?
    • /etc/init.d/em – skrypt, który pozwala na uruchomienie Enterprise Managera
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      #!/bin/bash
      #
      #       /etc/rc.d/init.d/em
      #
      # chkconfig: 345 99 01
      # description: Uruchomienie Enterprise Managera

      # Source function library.
      . /etc/init.d/functions

      if [ -f /etc/sysconfig/oracle ] ; then
              . /etc/sysconfig/oracle
      fi

      start() {
              echo "Starting Enterprise Manager: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/emctl start dbconsole"

              return 0
      }

      stop() {


              echo "Shutting down Enterprise Manager: "
              su - $ORACLE_OWER -c "$ORACLE_HOME/bin/emctl stop dbconsole"

              return 0
      }


      case "$1" in
          start)
              start
              ;;
          stop)
              stop
              ;;
          restart)
              stop
              start
              ;;
          *)
              echo "Usage: oracle {start|stop|restart}"
              exit 1
              ;;
      esac
      exit $?

    Teraz trzeba skonfigurować system, aby uruchamiał skrypty podczas startu:

    chmod +x /etc/init.d/oracle /etc/init.d/em
    chkconfig --add oracle
    chkconfig --add em

    Po tych krokach baza danych oraz EM będą uruchamiane podczas startu serwera. Oczywiście można także uruchomić te aplikacje od razu:

    1
    service oracle start; service em start

Źródła

Tags: ,

Instalacja bazy danych PostgreSQL 8.4 w systemie RHEL 5.4

Prosty problem: jak zainstalować wersję 8.4 bazy danych PostgreSQL w RHEL 5.4. W tej wersji jest dostarczona wersja 8.1 całkiem już stara. Na szczęście z wersja RHEL 5.5. zawiera już nowszą wersję tej bazy danych (pakiet postgresql84-server), ale ja tej wersji używać nie mogłem.

  1. Instalacja repozytorium z PostgreSQL w systemie:
    # rpm -Uvh http://yum.pgsqlrpms.org/reporpms/8.4/pgdg-redhat-8.4-2.noarch.rpm
  2. Instalacja bazy danych w systemie:
    # yum install postgresql postgresql-server postgresql-contrib
  3. Inicjalizacja bazy danych:
    # service postgresql initdb
  4. Start bazy danych:
    # service postgresql start
  5. Automatyczny start podczas włączania systemu:
    # chkconfig postgresql on

Źródła

Tags: , ,

Sprawdzanie pisowni w edytorze tekstu Vim

W edytorze tekstu Vim istnieje możliwość sprawdzania pisowni w języku polskim.

Włączenie tej funkcji nie jest trudne, w trybie command należy wydać następujące polecenie:

:setlocal spell spelllang=pl

Spowoduje ono włączenie polskiego słownika i automatyczne kolorowanie błędnych znaków.

Jeżeli jest to pierwsze uruchomienie tego polecenia, to należy jeszcze odpowiedzieć na kilka pytań dotyczących pobrania odpowiedniego słownika. Poniższe przykłady pochodzą z wersji edytora okienkowego (czyli z gVima), w przypadku Vima pytania są takie same, ale podawane są odpowiednio w linii poleceń. Podczas testu używałem Vima w wersji 7.2.330.

Pierwsze pytanie dotyczy prośby o wyrażenie zgody na utworzenie katalogu ~/.vim/spell. W katalogu tym będę trzymane odpowiednie słowniki dla używanych języków.

gVim: Utworzenie katalogu dla słownika

gVim: Utworzenie katalogu dla słownika

Oczywiście, podczas pierwszego uruchomienie słownik dla języka polskiego nie jest dostępny. Vim oferuje, że pobierze odpowiedni plik słownika.

gVim: Pobranie pliku ze słownikiem

gVim: Pobranie pliku ze słownikiem

Jeżeli słownik zostanie pomyślnie pobrany, to należy umieścić go w odpowiednim katalogu:

gVim: Zapisanie pliku ze słownikiem

gVim: Zapisanie pliku ze słownikiem

Po tych krokach sprawdzanie pisowni powinno działać. Istniej jeszcze możliwość pobrania pliku o rozszerzeniu sug. Vim także oferuje, że pobierze go samodzielnie. Niestety, przynajmniej w moim przypadku to nie zadziałało (ale sprawdzenie pisowni działa)

gVim: Pobranie pliku z rozszerzeniem sug

gVim: Pobranie pliku z rozszerzeniem sug

Użycie polecenia setlocal w powyższy sposób ma wpływ tylko na aktualnie otwarty dokument. Aby sprawdzenia pisowni działało w każdym otwieranym dokumencie, należy poniższą linię do pliku konfiguracyjnego Vima ~/.vimrc:

setlocal spell spelllang=pl

ja jednak chcę, aby sprawdzanie pisowni (i to w języku polskim) dotyczyło tylko i wyłącznie pików z rozszerzeniem tex. Można to zrobić, definiując odpowiednią komendę, wykonywaną podczas otwierania pliku o odpowiednim typie. Poniższy wpis należy umieścić w pliku ~/.vimrc:

au BufReadPost *.tex setlocal spell spelllang=pl

Teraz pozostaje jeszcze do opanowania odpowiednia klawiszologia (polecenia powinny być wydawane w trybie normalnym):

  • ]s – przeniesienie kursora na następne błędne słowo
  • [s – przeniesienie kursora na poprzednie błędne słowo
  • zg – zdefiniowanie słowa pod kursorem jako poprawne, zostanie ono zapisane w specjalnym pliku
  • zG – zdefiniowanie słowa pod kursorem jako poprawne, ale informacja o tym będzie przechowywana tylko w pamięci RAM
  • zw – zdefiniowanie słowa jako błędnego, zapisanie go w odpowiednim pliku słownika
  • zW – jak wyżej, ale informacje o tym będzie przechowywana tylko w pamięci RAM komputera
  • z= – wyświetlenie ponumerowaną listy podpowiedzi, jeżeli jakieś słowo pasuje, to należy podać jego numer

Więcej informacji można uzyskać w pomocy dołączonej do Vima:

:help spell.txt

Źródła

Tags: , ,