Archiwa tagu: linux

Jak zrobić screenshot w Ubuntu

Nie wyobrażam sobie życia bez możliwości robienia screenshotów. Czasem po prostu chcę komuś coś pokazać, czasem dodać ilustrację do notki na bloga, czasem udokumentować jakąś akcję (na przykład… BUGA). Zazwyczaj naciskam w tym celu Print Screen, wklejam do programu graficznego, zapisuję i gotowe. Tymczasem okazało się, że w Ubuntu 12.04 (z Unity na pokładzie), którego aktualnie używam, wcale nie jest to takie proste… Pojawiło się pytanie: zatem jak zrobić screenshot w Ubuntu?

O ile sprawa dotyczy zwykłego zrzutu, problemu nie ma – zaraz po wciśnięciu przycisku Print Screen na ekranie pojawia się okno z pytaniem, czy zapisać obraz do pliku, czy skopiować do schowka. Problem pojawia się natomiast, gdy chce się wykonać zrzut ekranu, na którym widać… rozwinięte menu. Na szczęście jest na to sposób: Czytaj dalej

Jak odpakować tar.gz

Aby odpakować tar.gz czyli skompresowane archiwum, można spróbować komendy tar -zxvf, gdzie:

  • z – (zip), zdekompresuj
  • x – (extract), wypakuj na dysk
  • v – (verbose), bardziej szczegółowe logowanie
  • f – (file), odczytaj archiwum z pliku podanego w parametrze

Mój plik był jednak bardziej złośliwy:

d9k@Nihilia:~/folder$ tar -zxvf export.tar.gz
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

Jak widać w przykładzie wyżej, pomimo że plik wygląda jak spakowane archiwum tar+gzip, wcale tak nie jest – komunikaty mówią, że plik nie jest w formacie gzip. Nie jest więc spakowany. Wystarczy zatem użyć samego tar -xvf:

d9k@Nihilia:~/folder$ tar -xvf export.tar.gz

Tym razem się udało i na dysku mamy odpakowane pliki.

Instalacja ROOT w systemie Ubuntu

ROOT jest biblioteką do analizy danych, statystyk, wizualizacji danych. Używany jest najczęściej w jednostkach naukowych (CERN, uczelnie itd.). Świetny opis instalacji tego frameworka znalazłam tu:
https://yannisflou.wordpress.com/2012/06/05/root-data-analysis-framework-on-ubuntu-12-04/. Instalacja ROOT jest tu naprawdę dobrze opisana.

Poniżej przedstawiam opis instalacji pod systemem Ubuntu 12.04, w języku polskim – dla absolutnych początkujących, nie znających systemu Linux.

Download

Ściągnęłam wersję ROOT 5.34/36 wybierając typ: „Source” na podstronie wersji: https://root.cern.ch/content/release-53436. (Po instalacji przedstawia się jako:
v5-34-36@v5-34-36, Apr 05 2016, 10:25:45 on linuxx8664gcc)

Rozpakowanie

d9k@Nihilia:~$ cd rootSOURCE
d9k@Nihilia:~/rootSOURCE$ gunzip root_v5.34.36.source.tar.gz
d9k@Nihilia:~/rootSOURCE$ tar xvf root_v5.34.36.source.tar

Miejsce docelowe instalacji

ROOT-a installować będziemy w folderze /opt/ROOT/. Folder „opt” był używany niegdyś do instalowania oprogramowania niezwiązanego z systemem (coś jak windowsowe „Program files”). Obecnie zaleca się używać ścieżki /usr/local, w mojej instrukcji użyję jednak „starodawnych” rozwiązań :)Stworzenie folderu:

d9k@Nihilia:~/rootSOURCE$ sudo mkdir /opt/ROOT/

Stworzenie tymczasowej zmiennej globalnej (w następnych krokach „utrwalimy” ją, aby była dostępna także po zamknięciu tej sesji terminala):

d9k@Nihilia:~/rootSOURCE$ export ROOTSYS=/opt/ROOT

Możemy sprawdzić, czy się utworzyła:

d9k@Nihilia:~/rootSOURCE$ echo $ROOTSYS
/opt/ROOT

Ok.

Configure

Configure to pierwszy krok instalacji. W skrócie Configure jest to skrypt, który na bazie podanych mu opcji (i zmiennych, uwarunkowań i zależności istniejących w systemie) tworzy plik Makefile, który z kolei zostanie użyty w kolejnych krokach.Można wyświetlić sobie helpa polecenia Configure – najlepiej zrzucając go do pliku, bo opcji konfiguracji ROOT-a jest ogólnie bardzo dużo. Instalować będziemy w opcjach domyślnych, wskazując jedynie miejsce instalacji.

d9k@Nihilia:~/rootSOURCE$ cd root
d9k@Nihilia:~/rootSOURCE/root$ ./configure --help > ../configure_help.txt

I wywołanie samego polecenia – ze wskazaniem mu ścieżki, gdzie ROOT ma zostać zainstalowany:

d9k@Nihilia:~/rootSOURCE/root$ ./configure --prefix=/opt/ROOT

Make

Wykonanie tego kroku trwało dość długo. Podczas tego etapu źródła są budowane za pomocą pliku Makefile, zawierającego instrukcje budowania.

d9k@Nihilia:~/rootSOURCE/root$ make

Make install

Wreszcie ostatni krok. Na tym etapie skompilowany program jest kopiowany do miejsca docelowego (podanego w parametrze „prefix” na etapie konfiguracji).

d9k@Nihilia:~/rootSOURCE/root$ sudo make install
[sudo] password for d9k:
============================================================
=== ROOT BUILD SUCCESSFUL. ===
=== Run 'make install' now. ===
============================================================
Installing binaries in /opt/ROOT/bin
Installing libraries in /opt/ROOT/lib/root
Installing headers in /opt/ROOT/include/root
Installing /home/d9k/rootSOURCE/root/main/src/rmain.cxx in /opt/ROOT/include/root
Installing cint/cint/include cint/cint/lib and cint/cint/stl in /opt/ROOT/lib/root/cint
Installing icons in /opt/ROOT/share/root/icons
Installing fonts in /opt/ROOT/share/root/fonts
Installing misc docs in /opt/ROOT/share/doc/root
Installing tutorials in /opt/ROOT/share/doc/root/tutorials
Installing tests in /opt/ROOT/share/doc/root/test
Installing macros in /opt/ROOT/share/root/macros
Installing man(1) pages in /opt/ROOT/share/man/man1
Installing config files in /etc/root
Installing Autoconf macro in /opt/ROOT/share/aclocal
Installing Emacs Lisp library in /opt/ROOT/share/emacs/site-lisp
Installing GDML conversion scripts in /opt/ROOT/lib/root
d9k@Nihilia:~/rootSOURCE/root$

Udało się.

Source

Krok wymagany przez program ROOT – uruchomienie skryptu „thisroot.sh„, ustawiającego ścieżki używane przez program ROOT, takie jak $ROOTSYS, $LD_LIBRARY_PATH, $DYLD_LIBRARY_PATH, $PATH, $LIBPATH i wiele innych. Jego treść można oczywiście podejrzeć dowolnym edytorem:

d9k@Nihilia:~$ cat /opt/ROOT/bin/thisroot.sh

Ok, czas na wykonanie tego skryptu:

d9k@Nihilia:~$ source /opt/ROOT/bin/thisroot.sh

Uruchomienie

Nareszcie możemy uruchomić program ROOT:

d9k@Nihilia:~$ root
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.34/36 5 April 2016 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************ROOT 5.34/36 (v5-34-36@v5-34-36, Apr 05 2016, 10:25:45 on linuxx8664gcc)CINT/ROOT C/C++ Interpreter version 5.18.00, July 2, 2010
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]

Utrwalenie zmiennych

Po wyłączeniu terminala, ustawiona w poprzednich punktach zmienna ROOTSYS zniknie. Można ją utrwalić.Jak czytamy w helpie Ubuntu:
„A suitable file for environment variable settings that affect the system is /etc/environment.
An alternative is to create a file for the purpose in the /etc/profile.d directory.”Modyfikujemy zatem plik:

 d9k@Nihilia:~$ sudo gedit /etc/environment

Dodając na koniec:

ROOTSYS="/opt/ROOT"

Aby nie trzeba było za każdym włączeniem terminala uruchamiać na nowo skryptu thisroot, można ustawić, aby skrypt był uruchamiany przy starcie systemu:

d9k@Nihilia:~$ sudo gedit .bashrc

Na końcu dodając linijkę:

source /opt/ROOT/bin/thisroot.sh

Gotowe 🙂

Jeśli chcesz natomiast przeczytać, jak zainstalować moduł LHAPDF, pisałam o tym tutaj.

Składanie PIT pod systemem Linux + 1% na naukę

Nie będę powielać tematu, ale zapisuję sobie „ku pamięci”, bardzo dobry artykuł jak zainstalować program e-Deklaracje w systemie Linux, instalacja (na zasadzie sztuczek niestety!) – krok po kroku: http://nocnypingwin.pl/e-deklaracje-pod-linuxem-2017/.

Gdyby ktoś natomiast zastanawiał się, na co może przeznaczyć swój jeden procent podatku, a kręci go nauka i chciałby ją wesprzeć, oto lista moich kandydatów:

  • 1% Na Astronomię, czyli program Ciemne Niebo – popularyzacja astronomii i działania z zakresu ochrony ciemnego nieba (KRS 0000076686). Kiedyś już pisałam o fundacji Polaris przy okazji innej ich akcji.
  • Fundacja Sieci Obserwatorów Burz (KRS: 0000546557) – robią dobrą robotę, wystarczy zajrzeć na http://obserwatorzy.org/ 
  • Polskie Towarzystwo Rakietowe – popularyzacja nauki – tym razem rakiety amatorskie. (KRS: 0000355014)
  • Fundacja Wikimedia – myślę, że nikomu nie trzeba przestawiać, Wikipedię znają chyba wszyscy 🙂 (KRS: 0000244732)

XnView – zamiennik Irfan View (Linux)

Niedawno pisałam o Irfan View i narzekałam na brak odpowiednika dla systemów linuksowych. Owszem, jest GIMP, ale do niektórych zastosowań jest to po prostu strzelanie z armaty do muchy 😉

Instalacja – typowa, z konsoli…

sudo add-apt-repository ppa:dhor/myway
sudo apt-get update
sudo apt-get install xnview
Need to get 27,3 MB of archives.
After this operation, 77,5 MB of additional disk space will be used.
Get:1 http://ppa.launchpad.net/dhor/myway/ubuntu/ precise/main xnview amd64 0.64-dhor1~precise [27,3 MB]
Fetched 27,3 MB in 27s (988 kB/s)
...

Programik jest przyjemny, na start umożliwia przeglądanie plików graficznych z dysku, po dwukrotnym kliknięciu przechodzimy do trybu edycji obrazka.

Większość opcji, których potrzebuję – jest obecna! Obracanie, wygodne wycinanie, proste filtry, zmiana jasności, gammy itd. Dla mnie bomba.

xnview2

Tymczasowa zmiana języka w terminalu Ubuntu

Moje Ubuntu było w wersji polskiej, co za tym idzie – komunikaty błędów w terminalu były po polsku, co utrudniało szukanie pomocy w sieci. Na szczęście język można zmienić tymczasowo na angielski, komendą:

LC_ALL=C bash

Jeśli natomiast chce się zmienić język na zawsze, trzeba wyedytować pliki:

sudo gedit /etc/default/locale
sudo gedit ~/.pam_environment

Zmieniając linijki:

LANGUAGE=en_GB:en
LANG=en_GB.UTF-8

Po tej zmianie konieczny jest reset.

Zapisywanie wyniku komendy do pliku w Linuksie

Większość poleceń, których efekt widać na konsoli, zwraca swój efekt do strumienia stdout. Aby efekt zapisać do pliku (co polecam w przypadku konieczności analizy dużej ilości wyników, które po prostu nie mieszczą się na ekranie), wystarczy przekierować go do pliku za pomocą „>

ls > result_ls.txt

Czasem jednak tak się nie da. Na przykład polecenie make zwraca wynik nie do strumienia stdout, lecz do stderr. Mamy dwie opcje:

  1. Przekazanie stdout i stderr do pliku:
    make &> result_make_full.txt
  2. Przekazanie tylko stderr do pliku:
    make 2> result_make_stderr.txt
  3. Przekazanie tylko stdout do pliku:
    make 1> result_make_stdout.txt

 

How to install LHAPDF6

Instruction is easy to find here: https://lhapdf.hepforge.org/install.html. But on „fresh” Linux you need to install some dependencies.

Download LHAPDF archive from page https://www.hepforge.org/downloads/lhapdf and unpack to any directory. Alternative method is to use wget:

wget http://www.hepforge.org/archive/lhapdf/LHAPDF-6.6.1.6.tar.gz
tar xf LHAPDF-6.1.6.tar.gz
cd LHAPDF-6.1.6

Installation is standard: configure, make, make install.

I prefer to not use any special path and install this lib directly to /usr/local/lib. So I didn’t use any prefixes:

./configure

After invoking this command I got a message:

checking for Boost headers version >= 1.41.0... no
configure: error: cannot find Boost headers version >= 1.41.0

Boost was missing. Let’s install it:

sudo apt-get install libboost1.48-*

When installation process ends, checking if boost is installed:

dpkg -s libboost1.48-all-dev

How to get version of Boost:

dpkg -s libboost1.48-all-dev | grep 'Version'

In my case: Version: 1.48.0-3.

After installing Boost, retry configure LHAPDF:

./configure

Succeed. Installation:

make
sudo make install

How to check if LHAPDF is installed? Try to invoke:

ls /usr/local/lib/

Linux – zmienne systemowe

Tak się składa, że czasem nawet najbardziej zagorzałą fankę Microsoftu 😉 dopada konieczność przesiadki na inny system. I szybko okazuje się, jak wielu rzeczy się nie wie lub nie pamięta. Przeczuwam więc, że w najbliższym czasie będą się tu pojawiać głównie notatki związane z różnymi poleceniami linuksowymi.

Wyświetlenie zmiennych systemowych na konsolę realizowane jest poleceniem: env lub printenv

Przykładowy output:

d9k@Nihilia:~$ env
SSH_AGENT_PID=1689
TERM=xterm
SHELL=/bin/bash
WINDOWID=69209558
USER=d9k
...

i tak dalej.

Ważną zmienną jest także PATH (jak na Windowsie). Jej zawartość można wyświetlić po prostu:

d9k@Nihilia2:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Jak widać, separatorem jest dwukropek (w przeciwieństwie do Windowsowego średnika).

Modyfikacja zmiennej PATH – w zależności od konfiguracji systemu:

  1. Plik ~/.profile
  2. Plik ~/.bash_profile
  3. Plik ~/.bash_login
  4. Plik  /etc/environment

W moim przypadku (Ubuntu 12.04.2 LTS) zmienna PATH występowała w /etc/environment. Zmodyfikowałam plik (sudo gedit /etc/environment), dla zastosowania zmian: source /etc/environment && export PATH.