Generowanie losowych haseł w Ubuntu

Hasła, każdy ma ich przynajmniej kilka w pamięci, ale życie uczy, że nie warto stosować takich samych do autoryzacji bankowych, kont na naszej-klasie, gadu czy na roota ;)

Chciałbym Wam przedstawić bardzo proste narzędzie z którego korzystam z powodzeniem od kilku lat – nazywa się apg (Automated Password Generator) i służy do wygodnego generowania haseł.

Narzędzie oferuje dwa rodzaje haseł – mniej zaawansowane, ale znacznie łatwiejsze do zapamiętania dla osób znających język angielski oraz bardziej zaawansowane (zawierające poza literami dodatkowe krzaczki). Za pomocą dodatkowych parametrów możemy wpłynąć na zawartość dużych, małych liter lub liczb.

Instalacja jest standardowa:

aptitude install apg

Help

Wygląda tak:

apg -h

apg   Automated Password Generator
Copyright (c) Adel I. Mirzazhanov

apg   [-a algorithm] [-r file]
[-M mode] [-E char_string] [-n num_of_pass] [-m min_pass_len]
[-x max_pass_len] [-c cl_seed] [-d] [-s] [-h] [-y] [-q]

-M mode         new style password modes
-E char_string  exclude characters from password generation process
-r file         apply dictionary check against file
-b filter_file  apply bloom filter check against filter_file
(filter_file should be created with apgbfm(1) utility)
-p substr_len   paranoid modifier for bloom filter check
-a algorithm    choose algorithm
1 - random password generation according to
password modes
0 - pronounceable password generation
-n num_of_pass  generate num_of_pass passwords
-m min_pass_len minimum password length
-x max_pass_len maximum password length
-s              ask user for a random seed for password
generation
-c cl_seed      use cl_seed as a random seed for password
-d              do NOT use any delimiters between generated passwords
-l              spell generated password
-t              print pronunciation for generated pronounceable password
-y              print crypted passwords
-q              quiet mode (do not print warnings)
-h              print this help screen
-v              print version information

A teraz praktyka

Wystarczy znajomość kilku parametrów:

Generowanie 5-ciu haseł: -n

apg -n 5

ookyopIack
berpAxEr
DusEphac
yomlipvog~
weehacir

Generowanie haseł o minimalnej długości: -m

apg -n 5 -m 10

BlysBicWeo
fefimvesBa
CuAtecHeoc
crejvibred
CynfiShnoi

Generowanie haseł z wymową (aby łatwiej było je zapamiętać): -t

apg -n 5 -m 10 -t

WaigJocWig (Waig-Joc-Wig)
Geagsyinau (Geags-yin-au)
Cunefkalt9 (Cun-ef-kalt-NINE)
Pemyidyish (Pem-yid-yish)
agsirasuk7 (ags-ir-as-uk-SEVEN)

Generowanie bardziej zaawansowanych haseł: -a 1

apg -a 1 -n 5 -m 10

N;%5RWNM|B
$48+HGvlac
{@M!yPMa-y
jyI<{\3;{i
t)nThAUw?~

Skrypt ten jest bardzo przydatny, kiedy musimy wygenerować komuś hasło ponieważ nie jest w stanie sobie czegoś wymyślić (i pewnie wymyślił by ostatecznie nazwę swojego psa lub imię małżonki) lub stawiamy następny z kolei serwer mysql, a nie chcemy zostawiać takiej dziury jak nie tak dawno ktoś z ekipy Wykopu, kiedy to wykradziono im hasła użytkowników.

Wirtualni userzy ftp w Ubuntu

Poniżej znajduje się instrukcja opisująca jak skonfigurować krok po kroku bardzo prosty i bezpieczny serwer ftp obsługujący wirtualne konta – użytkowników, których fizycznie nie ma zdefinowanych w systemie. Jako serwer ftp wykorzystany zostanie vsftpd (very secure ftp daemon).

Założenia: potrzebujemy prostego serwera ftp do którego możemy zdefiniować kilku użytkowników, gdzie każdy ma dostęp do tego samego katalogu (opis jak należy to skonfigurować, aby każdy użytkownik miał swój własny katalog znajduje się we wpisie źródłowym, którego adres zamieściłem na końcu wpisu).

Najpierw instalujemy serwer ftp oraz narzędzie do obsługi bazy użytkowników:

aptitude install vsftpd db4.2-util

Tworzymy katalog ftp:

mkdir /home/ftp
chown ftp:ftp /home/ftp

(aplikacja domyślnie podczas instalacji zakłada katalog /srv/ftp)

Podmieniamy plik /etc/vsftpd.conf na następujący:

# /etc/vsftpd.conf
listen=YES
listen_ipv6=NO
#listen_port=2121

anonymous_enable=NO
local_enable=YES
guest_enable=YES

virtual_use_local_privs=YES
pam_service_name=vsftpd-virtual

guest_username=ftp

local_root=/home/ftp

local_umask=022
write_enable=YES
hide_ids=YES
dirmessage_enable=YES

use_localtime=YES
xferlog_enable=YES
log_ftp_protocol=YES
setproctitle_enable=YES

connect_from_port_20=YES

chroot_local_user=YES
chroot_list_enable=NO
secure_chroot_dir=/var/run/vsftpd/empty

W razie potrzeb – zmieniamy ustawienia – np. jeśli chcemy zmienić port na którym aplikacja ma nasłuchiwać – usuwamy znak komentarza z linii listen_port i zmieniamy numer portu.

Przygotowujemy plik /etc/pam.d/vsftpd-virtual:

auth required pam_userdb.so db=/etc/vsftpd-virtual
account required pam_userdb.so db=/etc/vsftpd-virtual

Przygotowujemy plik z użytkownikami i hasłami /etc/vsftpd-konta:

uzytkownik1
haslo1
uzytkownik2
haslo2

umieszczamy hasła w bazie:

db4.2_load -T -t hash -f /etc/vsftpd-konta /etc/vsftpd-virtual.db

a następnie restartujemy usługę:

service vsftpd restart

Możemy już zalogować się do serwera, przykładowo:

lftp -p 2121 -u uzytkownik1,haslo1 localhost
lftp test1@localhost:~> ls
lftp test1@localhost:/>

Źródło: http://linuxforfun.net/2008/04/05/vsftpd-virtual-users/

ACL dla plików i katalogów w Ubuntu

Unixowy system uprawnień dla plików i katalogów został naprawdę dobrze przemyślany i świetnie się sprawdza. Każdy jednak prędzej czy później może trafić na sytuację, w której możliwość stosowania rozszerzonych uprawnień dałaby znacznie większą swobodę i wygodę.

Kogo temat może zainteresować?

Wydaje mi się, że użytkownicy zwykłych desktopów nie będą ACL’i potrzebować. Jeśli jednak jakiś developer umieszcza przykładowo serwer z repozytorium u siebie albo jest administratorem jakiegoś serwera – myślę, że warto się zapoznać z poniższą tematyką.

Krok po kroku

Access Control Lists (ang. ACL), czyli listy kontroli dostępu są w jądrze Ubuntu wkompilowana domyślnie już od jakiegoś czasu. Niewiele stoi zatem nam na przeszkodzie, aby aktywnie zacząć z nich korzystać. ACL należy traktować jako rozszerzenie Unixowego systemu uprawnień plików i katalogów, dlatego zestaw komend takich jak chown czy chmod nadal obowiązuje.

Czego zatem potrzebujemy? Musimy uświadomić nasz system, że będziemy wykorzystywać ACL’e dla konkretnych systemów plików. No i przede wszystkim – musimy mieć narzędzia do zarządzania ACL’ami oraz wiedzieć, jak się ich używa :)

Zatem po kolei.

Sprawdźmy, czy mamy narzędzia do obsługi ACL’i. Narzędzia nazywają się setfacl, getfacl oraz chacl.

desktop repos # getfacl
Program getfacl nie jest obecnie zainstalowany.  Można go zainstalować wpisując:
apt-get install acl
getfacl: command not found
desktop repos #

Więc go sobie instalujemy:

sudo aptitude install acl

Spróbujmy ustawić jakąś rozszerzoną listę dostępu. Przejdźmy do katalogu domowego, załóżmy katalog test oraz nadajmy uprawnienia rwx użytkownikowi nobody.

cd
mkdir test
setfacl -R -m u:nobody:rwX test
setfacl: test: Operation not supported

Komunikat Operation not supported oznacza nic innego jak brak obsługi ACL w systemie plików. Jeśli nasz katalog domowy znajduje się na odrębnym systemie plików home, możemy aktywować obsługę ACL komendą:

sudo mount -o remount,acl /home

Teraz ustawianie rozszerzonych uprawnień powinno już działać. Ponowne wydanie komendy setfacl nie powinno już zwrócić błędu.

Przy okazji, możemy zobaczyć jak wyglądają uprawnienia naszego katalogu:

nme@desktop ~ $ setfacl -R -m u:nobody:rwX test
nme@desktop ~ $ ls -lad test/
drwxrwxr-x+ 2 nme nme 4096 2009-12-30 14:29 test/
nme@desktop ~ $ getfacl test
# file: test
# owner: nme
# group: nme
user::rwx
user:nobody:rwx
group::r-x
mask::rwx
other::r-x

Warto zwrócić uwagę na uprawnienia zwracane komendą ls -l: drwxrwxr-x+ – na końcu listy uprawnień znajduje się znak + oznaczający rozszerzone informacje. Takie uprawnienia możliwe są do odczytu za pośrednictwem getfacl co też uczyniłem powyżej. Wynik komendy jest dość czytelny.

Wracając do wydanej komendy:

setfacl -R -m u:nobody:rwX test

Co po naszemu brzmi – rekursywnie zmodyfikuj uprawnienia dla użytkownika nobody dla katalogu test ustawiając uprawnienia rwx dla katalogów i rw dla plików.

Dziecinne proste. Rozbudujmy komendę:

setfacl -Rm u:nobody:rwX,d:u:nobody:rwX test

(pierwsza część jest tak naprawde zbędna, ponieważ uprawnienia dla użytkownika już ustawiliśmy, ale chciałem przedstawić sposób w jaki możemy łączyć uprawnienia w obrębie jednej komendy)

d:u:... można zapisać również jako default:u:... co oznacza, że dla nowo zakładanych plików/katalogów, takie atrybuty mają być domyślnie dodawane.

Ważna sprawa, na koniec

Aby używać list dostępu, aktywowaliśmy opcję acl poprzez przemontowanie systemu pliku. Niestety, po restarcie, system plików nie będzie już obsługiwał list dostępu.

Co zatem zrobić?

Jeśli chcemy, aby nasz system plików pamiętał o tym, że ma obsługiwać rozszerzone listy dostępu, w pliku /etc/fstab należy to zaznaczyć, acl jako opcję dla naszego systemu plików:

/dev/mapper/desktop-home /home           ext3    defaults,acl        0       2

Więcej informacji, wraz z przykładami znaleźć możecie na stronach manuala komend do obsługi acl które przedstawiłem w tym tekscie.

Ailurus: wygodny tuning Ubuntu

Niestrudzony Adrian Nowak, na blogu Ubucentrum zamieścił wpis Ailurus – ułatwi początki z Linuksem.

Czym jest Ailurus? To wygodny interfejs produkcji “Thrusted Digital Technology Lab.” z siedzibą w Chinach, do tuningu systemu i obsługi systemu :)

Faktycznie, narzędzie jest faktycznie bardzo ciekawe. Nie znajduje się jednak w standardowym repozytorium. Dlatego myślę, że warto wspomnieć, w jaki sposób najwygodniej je zainstalować.

Nie zalecałbym metody którą proponuje Adrian – czyli instalacji pojedynczej paczki z serwisu GetDeb.net.

Instalowanie pojedynczych paczek jest zaśmiecaniem systemu.

Instalacja

W Ubuntu 9.10 możemy w wygodny sposób dodawać repozytoria, które sprawią, że jeśli pojawi się nowa wersja pakietu, przy aktualizacji systemu, pakiet zostanie również uaktualniony.

# przechodzimy na roota
sudo -i

# dodajemy nowe repozytorium
add-apt-repository ppa:ailurus

# aktualizujemy wykaz aktualnych pakietów
aptitude update

# instalujemy pakiet
aptitude install ailurus

Aplikacja, po instalacji jest dostępna poprzez Programy / Narzędzia systemowe / Ailurus.

Co oferuje nam pakiet?

  • Tips and tricks – warto przeglądnąć – informacje jak za pomocą gconf-editora wykonać tuning naszego Gnome’a
  • Wygodny frontend do konfiguracji i sprawdzenia parametrów systemu (typ procesora, ilość pamięci, czy procesor jest 64-bitowy, rodzaj karty graficznej i sieciowej)
  • Skróty do instalacji różnych przydatnych aplikacji, których nazwy należałoby w innym wypadku pamiętać albo trzeba byłoby się bardziej narobić, żeby je zainstalować
  • Ustawienia systemowe – innymi słowy – edycja plików konfguracyjnych, modifykacja menu kontekstowego Nautilusa itp
  • i wiele innych…

Kiedy można sobie ułatwić życie, warto to robić :)

Klikanie we Flasha w Ubuntu 9.10

Nowe Ubuntu umożliwia nam skorzystanie z najnowszej wersji Flasha. Będziemy mieli okazje zapoznać się z takimi nowymi ficzerami jak migotanie obrazu uniemożliwiające oglądanie YouTube na pełnym ekranie czy niemożność kliknięcia w jakiś element wewnątrz Flasha (np. podczas ustawiania zakresu dat w Google Analytics). Adobe’a, firmę za Flasha odpowiedzialną oraz za to jak pracuje on pod Linuxem, pozostawiam Waszej ocenie – mnie skończył się na dzisiaj jad ;)

Rozwiązanie drugiego z wyżej wymienionych problemów jest bardzo proste i znalazłem je tutaj. Ten wpis jest jedynie tłumaczeniem.

Gotowy?

* Naciśnij Alt+F2 i Enter
* gksudo gedit /usr/lib/nspluginwrapper/i386/linux/npviewer
* Dodaj następującą linię przed ostatnią linią tekstu
* export GDK_NATIVE_WINDOWS=1
* Zapisz.
* Zrestartuj aplikacje używające Flasha

Zawartość pliku ostatecznie powinna wyglądać tak:

flash_wrapper_edit

Wyłączenie użytkownikowi MOTD na Ubuntu

Tematyka niniejszego wpisu jest, można powiedzieć wręcz banalna, ale myślę, że to trick warty poznania lub przypomnienia. Nie dotyczy tylko i wyłącznie dystrybucji Ubuntu, ale w zasadzie wszystkich Linuxów.

Jeśli logujesz się po ssh na inny komputer, wyświetlana jest zawartość Message Of The Day (/etc/motd). Jeśli nie chcesz tego widzieć, w swoim katalogu domowym wystarczy utworzyć plik o nazwie .hushlogin, wersja copy & paste:

cd
touch .hushlogin

(polecenie cd bez parametrów to kolejny trick – sprawia, że zostajemy przeniesieni do naszego katalogu domowego)

Efekt

Zilustrowałem poniżej:

nme@desktop ~ $ ssh laptop
Linux laptop 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 UTC 2009 i686

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/

  System information as of Fri Nov  6 20:56:41 CET 2009

  System load: 0.16              Memory usage: 18%   Processes:       155
  Usage of /:  7.1% of 35.51GB   Swap usage:   0%    Users logged in: 1

  Graph this data and manage this system at https://landscape.canonical.com/

Last login: Fri Nov  6 20:55:19 2009 from desktop.local
nme@laptop ~ $ touch .hushlogin
nme@laptop ~ $ logout
Connection to laptop closed.
nme@desktop ~ $ ssh laptop
nme@laptop ~ $ 

Proste, aczkolwiek przydatne :)

Dwa komputery z Linuxem – jedna klawiatura i mysz

Czy kiedykolwiek zdarzyło Ci się pracować na dwóch komputerach – np. notebooku i komputerze stacjonarnym, albo dwóch stacjonarnych jednocześnie? Frustrujące uczucie, kiedy mylą się myszki, prawda? Jeśli oba komputery pracują pod Linuxem – jest na to sposób! :)

x2x

Ostatnio coraz częsciej pracuje na większej ilości komputerów jednocześnie. Zwykle jest to komputer stacjonarny i notebook, ale bywają też bardziej rozbudowane konfiguracje. W takich sytuacjach aż chce się mieć możliwość aby wyjechać myszką “za” ekran i “wjechać” na drugi, najechać na aplikację i coś wpisać za pomocą klawiatury, tej, z której korzystałem do pracy na pierwszej stacji roboczej. Da się to zrobić -  rozwiązaniem tego problemu jest mała aplikacja o nazwie x2x.

Aplikacja x2x świetnie współpracuje z ssh. Mamy dzięki temu szyfrowane połączenie między oboma stacjami roboczymi i nie musimy się obawiać, że ktoś podsłucha co wpisujemy.

Aby korzystać z x2x, musimy go najpierw zainstalować. Robimy to na komputerze do którego chcemy się podłączyć, czyli – jeśli standardowo pracujemy na komputerze stacjonarnym, a chcemy mieć możliwość “wyjechania myszką” na notebooka, x2x musimy zainstalować na notebooku.

sudo aptitude install x2x

Kiedy mamy już zainstalowaną aplikację, możemy ją wykorzystać.

x2x w Ubuntu 9.04 i wcześniejszych

Jeśli notebook stoi po lewej stronie, jak na obrazku załączonym powyżej, musimy podać parametr -west. Mamy do dyspozycji również -north, -south-east.

ssh -X notebook "x2x -west -to :0.0"

W tym momencie możemy już pracować na obu komputerach, korzystając z klawiatury i myszy z pierwszego z nich.

x2x w Ubuntu 9.10 Karmic Koala

Nowe X’y, nowy gdm – sprawy się nieco skomplikowały. Problem zaczął doskwierać również innym i został rozwiązany przez Roberta Jennigsa i Davida Boersma’ę. Aby cieszyć się z x2x w Karmic, możemy skorzystać z poniższego skryptu.

Musimy ustawić w nim następujące parametry:
- USER – nazwa użytkownika na którego logujemy się na zdalnej maszynie
- HOST – adres IP komputera lub jego nazwa w DNS lub /etc/hosts
- HOSTNAME – nazwa zdalnego komputera (taka sama jak zawartość /etc/hostname)
- SIDE – z której strony naszego podstawowego ekranu myszka może wyjechać

#!/bin/bash
#
# x2x Karmic problem solution based upon:
# https://bugs.launchpad.net/ubuntu/+source/x2x/+bug/471726
# Many thanks to Robert Jennings and David Boersma!

# Setup:

USER=user               # remote host username
HOST=ip                 # remote host IP or name
HOSTNAME=nazwa_hosta    # remote /etc/hostname
SIDE=west               # north / south / west / east
COMPRESSION="-C"        # comment out for LAN

# No need to change anything below:

MERGE="xauth merge /var/run/gdm/auth-for-$USER*/database"
LIST="xauth list"
REMOVE="xauth remove $HOSTNAME/unix:0"
X2X="x2x -$SIDE -to :0.0"

#ssh -X $COMPRESSION $USER@$HOST "$MERGE; $LIST; $X2X; $REMOVE"
#ssh -X $COMPRESSION $USER@$HOST "$LIST"
ssh -X $COMPRESSION $USER@$HOST "$MERGE; $X2X; $REMOVE"

Ja już się uzależniłem, Wam również polecam! :)

Drażniący dzwięk podczas pracy na baterii w Ubuntu

intel-core2-duoLinux Ubuntu jest na tą chwilę chyba najlepszą Linuxową dystrybucją na desktopa. Jest ona jednak nadal świeża i zdarza się, że czasami ma pewne problemy z nowszym sprzętem.

Jednym z takich problemów z którym się zetknąłem jest drażniący pisk czyli dźwięk o wysokiej częstotliwości (ang. high-pitch noise) podczas pracy notebooka na zasilaniu bateryjnym. Przyczyną tego dzwięku jest wyższy tryb ACPI odpowiedzialny z zarządzaniem zasilaniem i temperaturą. Więcej szczegółów technicznych można znaleźć na stronach Intela opisujących C-State Architecture.

Mój notebook ma procesor Intel Centrino (Core2) Duo T5600 i niestety ten problem go dotyczy.

Stare rozwiązanie stosowane w Ubuntu 8.04

W jądrze systemu ustawiona jest możliwość zmiany tego parametru podczas pracy systemu (parametr CONFIG_ACPI_PROCESSOR=y).

Aby dźwięk ustał należy uruchomić komendę:

echo 2 >/sys/module/processor/parameters/max_cstate

Można pokusić się o dodanie takiego skryptu do /etc/acpi.d który ten problem rozwiąże, ale lepiej zastosować następne rozwiązanie.

Szczegółowe informacje można znaleźć tutaj.

Nowe rozwiązanie dla Ubuntu 8.04, 8.10 i 9.04 oraz prawdopodobnie pozostałych

W konfiguracji grub’a, do parametrów kernela należy dodać processor.max_cstate=2, przykładowy wpis:

title           Ubuntu 9.04, kernel 2.6.28-15-generic
root            (hd0,1)
kernel          /vmlinuz-2.6.28-15-generic root=/dev/mapper/sys-root ro quiet splash processor.max_cstate=2
initrd          /initrd.img-2.6.28-15-generic
quiet

Rozwiązanie to ma tą wadę – trzeba o nim pamiętać i uzupełniać w konfiguracji gruba nowe kernele o ten parametr. Jeśli to rozwiązanie jest dla Ciebie przydatne to zachęcam do oznaczenia go sobie w Google Readerze jako ulubione, bo kto wie, być może będzie potrzeba aby do niego wrócić :)

Instalacja Mercurial z GUI TortoiseHG pod Ubuntu 9.04

mercurial-3Mercurial jest jednym z najpopularniejszych ostatnio systemów kontroli wersji. Został on napisany w języku Python i coraz więcej projektów jest do niego migrowanych. Google Code umożliwia wybór jednego z dwóch systemów kontroli wersji – jednym z nich jest SVN, drugim właśnie Mercurial.

Różnice między scentralizowanym a rozproszonym systemem kontroli wersji

Zasada działania Mercuriala jest zbliżona do Git‘a – oba są tzw. rozproszonymi systemami kontroli wersji. SVN z drugiej strony jest systemem zcentralizowanym. Praca na systemie rozproszonym jest o tyle wygodna, że każda lokalna kopia repozytorium może być traktowana jako pełnoprawna i całkowicie niezależna. Rozwijając kod który jest obsługiwany w takim systemie kontroli wersji, commitowanie, czyli zatwierdzanie mniejszych porcji zmian jest znacznie wygodniejsze i nie wymaga zaprzątania głowy głównego repozytorium… którego tak naprawdę wcale nie musi być.

Jak to robi Linus Torvalds?

Większe projekty, takie jak jądro Linuxa coraz częściej przechodzą na rozproszone systemy kontroli wersji. Linus Torvalds bardzo zachęca wszystkich do migrowania do Gita z SVN’a. Git został napisany właśnie z myślą o developerach jądra systemu Linux. Głównymi zaletami według niego są dwie kwestie – pierwsza: znacznie wygodniejsze merge’owanie (łączenie zmian wprowadzonych przez różnych developerów) oraz druga – rozproszone repozytoria pozwalają na hierarchiczne scalanie kodu (z punktu widzenia pracy grupowej). Dzięki tej drugiej, Linus może powierzyć np. opiekę nad modułami jądra dotyczącymi sieci komuś, kto zna się na tym konkretnym temacie lepiej, potrafi weryfikować zmiany i poprawki. Zebrane do repozytorium przez opiekuna drzewa sieci poprawki, Linus może włączyć do jego repozytorium, które traktowane jest jako główne mając pewność, że wszystkie zmiany zostały odpowiednio zweryfikowane.

Kontrola wersji z linii komend

Mercuriala można zainstalować ze standardowego pakietu w Ubuntu. Na pakiet składa się jedna aplikacja – hg. Za jej pomocą można wykonać wszystkie operacje na repozytorium z poziomu linii komend.

$ hg
Mercurial Distributed SCM

basic commands:

 add        add the specified files on the next commit
 annotate   show changeset information by line for each file
 clone      make a copy of an existing repository
 commit     commit the specified files or all outstanding changes
 diff       diff repository (or selected files)
 export     dump the header and diffs for one or more changesets
 forget     forget the specified files on the next commit
 init       create a new repository in the given directory
 log        show revision history of entire repository or files
 merge      merge working directory with another revision
 parents    show the parents of the working directory or revision
 pull       pull changes from the specified source
 push       push changes to the specified destination
 remove     remove the specified files on the next commit
 serve      export the repository via HTTP
 status     show changed files in the working directory
 update     update working directory
 view       start interactive history viewer

use "hg help" for the full list of commands or "hg -v" for details

Kontrola wersji z poziomu interfejsu graficznego

Istnieje jednak możliwość pracy graficznej. Windowsowi użytkownicy jako graficzny interfejs zwykle wykorzystują TortoiseHG, który wywodzi się z TortoiseSVN. Pod Linuxem możemy również wykorzystać TortoiseHG.

Instalacja Mercuriala i TortoiseHG pod Ubuntu 9.04

Uruchomienie komend zamieszczonych poniżej sprawi, że nasz Mercurial zostanie “podniesiony” do najnowszej stabilnej wersji, pojawi się nam TortoiseHG również w wersji stabilnej, a następnie TortoiseHG zostanie włączone do domyślnego menadżera plików w Gnome – Nautilusa. Zainstalowana zostanie również aplikacja Meld, która czyni merge’owanie całkiem przyjemną czynnością w interfejsie graficznym :)

# Najpierw przechodzimy na roota, tego którego w Ubuntu nie ma ;)  

sudo -i

# Dodajemy drzewo stable repozytorium Mercuriala z Ubuntu Launchpad PPA

cat >/etc/apt/sources.list.d/mercurial.list << EOF
deb http://ppa.launchpad.net/mercurial-ppa/stable-snapshots/ubuntu jaunty main
deb-src http://ppa.launchpad.net/mercurial-ppa/stable-snapshots/ubuntu jaunty main
EOF
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key 323293EE

# Dodajemy drzewo stable repozytorium TortoiseHG z Ubuntu Launchpad PPA
cat >/etc/apt/sources.list.d/tortoisehg.list << EOF
deb http://ppa.launchpad.net/tortoisehg-ppa/stable-snapshots/ubuntu jaunty main
deb-src http://ppa.launchpad.net/tortoisehg-ppa/stable-snapshots/ubuntu jaunty main
EOF
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key D5056DDE

# odświeżamy listę repozytoriów i pobieramy pakiety oraz dodajemy obsługę bindingsów Pythona w Nautilusie

aptitude update
aptitude install -y python-nautilus mercurial tortoisehg tortoisehg-nautilus meld

# doinstalowujemy pakiet iniparse
wget http://iniparse.googlecode.com/files/python-iniparse_0.3.1-1_all.deb
dpkg -i python-iniparse_0.3.1-1_all.deb
rm python-iniparse_0.3.1-1_all.deb

Po wykonaniu tych komend najlepiej się przelogować ponownie, aby Nautilus zdał sobię sprawę z wprowadzonych zmian. Można też (już na swoim użytkowniku) uruchomić komendę:

nautilus -q

Która spowoduje przeładowanie Nautilusa (może nam zniknąć do następnego zalogowania zawartość pulpitu). Jeśli wszystko pójdzie pomyślnie, w efekcie możemy zarządzać repozytorium w następujący sposób:

mercurial-1

Niech ktoś to zrobi pod Windowsem :P

Wyobraźmy sobie, że surfujemy pod Windowsem, natrafiamy na coś takiego…

diox-before

…a pod Linuxem wystarczy jeden skrót klawiszowy i mamy taki efekt:

diox-after

:) Aby móc to robić potrzebny jest uruchomiony Compiz. Tą funkcjonalność (Dostępność / Negatyw) i inne najwygodniej skonfigurować, lub włączyć za pomocą System / Preferencje / Menadżer ustawień CompizConfig. Jeśli takowego nie posiadamy – możemy go sobie zainstalować następującą komendą:

sudo aptitude install compizconfig-settings-manager

Skróty negatyw danego okna lub negatyw ekranu są wbrew pozorom dość przydatne, zwłaszcza wieczorem, podczas czytania ebooków.

Aniołek pochodzi ze strony http://diox.mylog.pl ;)

Następnya strona »