Administrowanie systemami komputerowymi |
---|
1 |
Zadanie 1. Podstawowe operacje na repozytorium
Zadanie polegało na utworzeniu na komputerze nowego repozytorium SVN za pomocą komendy:
svnadmin create /lab-svn/svn
Polecenie tworzy standardowy drzewo repozytorium. Subversion pozwala na sprawne operowanie na katalogach w repozytorium. Korzysta z takich samych poleceń co Linux, poprzedzonych poleceniem svn, np. tworzenie folderu:
svn mkdir /sciezka_do_repo/nowy_folder
Zadanie 2. Manipulacja strukturą folderów
W tym zadaniu należało zapoznać się z możliwościami svn w operacjach na katalogach. Należy pamiętać, że większość z operacji wykonywanych z użyciem komendy svn wymaga dodania komentarza. Jest to potrzebne, aby w późniejszym czasie można było łatwo dowiedzieć się co dana operacja miała za zadanie zrobić.
Zadanie 3. Importowanie istniejącego projektu
Ćwiczenie polegało na zaimportowaniu do repozytorium, wcześniej utworzonego projektu.
Zadanie 4. Tworzenie kopii roboczej plików
Zadanie pozwoliło zapoznać się z jedną z głównych komend, czyli checkout. Pobiera ona z repozytorium całą strukturę katalogów i plików i zapisuje ją w wybranym przez nas katalogu. Od tej pory, prace nad plikami, które pobraliśmy są monitorowane przez system kontroli wersji.
Zadanie 5. Dodawanie plików i zatwierdzanie zmian
Zadanie pozwoliło nam zauważyć, że samo utworzenie pliku w katalogu który zawiera kopię roboczą repozytorium, nie gwarantuje, że ten plik będzie brany pod uwagę przy następnym commicie. Aby tak się stało, musi on być przyłączony do repozytorium za pomocą polecenia:
svn add nazwa_pliku
Jeżeli nie jesteśmy pewni, czy nowo utworzone pliki objęte są kontrolą wersji, wystarczy że wydamy polecenie svn status, które zwróci nam listę plików w których zaszły zmiany, oraz te, które znajdują się w folderze z repozytorium, ale nie są do niego dodane.
Zadanie 6. Usuwanie i zmiana nazw plików
Zadanie polegało na usunięciu oraz zmianie nazwy plików w repozytorium oraz zauważeniu, że zmiany, które dokonaliśmy, zostały od razu zacommitowane.
Zadanie 7. Wersjonowanie
Każdy z commitów otrzymuje kolejny numer wersji. Dzięki temu, korzystając z polecenia checkout z opcją –r, możemy podać numer rewizji, którą chcemy pobrać na swój komputer. Pobrane zostają jednak tylko te pliki, które różnią się pomiędzy wersjami.
Zadanie 8. Konflikty
Głównym powodem używania systemów kontroli wersji jest edytowanie tego samego pliku przez wiele osób jednocześnie. Zachodzi wtedy potrzeba scalenia wszystkich kopii w jedną. Subversion daje nam możliwość automatycznego scalenia plików, które posiadają różne dane, a jeżeli występuje konflikt(w dwóch plikach zmienione są te same dane), użytkownikowi pozostawia decyzję który plik ma być zapisany, lub pozwala mu ręcznie edytować plik.
Zadanie 9. Gałęzie
Zadanie polegało na podziale dotychczas tworzonego projektu na gałęzie. Gałąź główna zawiera najważniejsze pliki projektu, a każdy rozwijany element, posiada swoją odrębną gałąź. Dzięki temu możemy osobno zająć się scalaniem każdej z gałęzi z osobna, a dopiero potem scalić cały projekt. Gałąź główna przetrzymywana jest w folderze trunk, natomiast gałęzie poboczne w folderze branches. Do scalenia gałęzi z główna wykorzystywane jest polecenie
svn merge ^/branches/galaz
gdzie ^ oznacza ścieżkę do repozytorium.
Zadanie 10. Zdalne repozytorium
Ćwiczenie polegało na pobraniu repozytorium na inny komputer korzystając z połączenia svn+ssh. Zasady uwierzytelniania są tu dokładnie takie same jak przy korzystaniu z czystego ssh.
Zadanie 11. Zrzucenie i ładowanie repozytorium
Zadanie polegało na wykonaniu kopii zapasowej repozytorium. Nie należy jednak kopiować wszystkich katalogów z repozytorium, lecz użyć polecenia:
svnadmin dump /lab-svn/svn > /tmp/mydumpfile.db
Dzięki temu w jednym pliku będziemy mieć całe repozytorium.
Zadanie 12 Wstęp do systemu git W tym zadaniu mieliśmy się zapoznać z podstawowymi poleceniami wykorzystywanymi w programie git. Jest to program bardzo podobny do programu svn, jednak wymaga od nas, abyśmy ustawili swoją nazwę użytkownika oraz adres email, aby móc być identyfikowanym w systemie.
Zadanie 13 Git: podstawowe operacje
Zadanie polegało na zapoznaniu się z schematem pracy podczas korzystania z git. Najważniejszą rzeczą o jakiej trzeba pamiętać podczas pracy z gitem jest to, że git, poleceniem commit nie wysyła domyślnie plików. Każdy plik należy dodać poleceniem git add. W loga-ch gita możemy także zobaczyć, że każdy commit nie ma przydzielanego kolejnego numeru(jak w przypadku svn), lecz jest to ciąg identyfikacyjny wyliczany za pomocą SHA1.
Zadanie 14 Git: synchronizacja repozytoriów
W tym zadaniu nauczyliśmy się pracy z gitem na różnych stanowiskach. Po skopiowaniu repozytorium na inną maszynę i wykonaniu w nim jakiś zmian, polecenie git commit zapisało te zmiany, lecz tylko w naszym lokalnym repozytorium. Aby zapisały się one na głównym repozytorium, należy te zmiany „wypchnąć” poleceniem git push. W przypadku kiedy dokonaliśmy zmiany w pliku, a ktoś inny w międzyczasie także dokonywał zmian w tym samym pliku, git prosi nas abyśmy uzgodnili które zmiany mają zostać.
Zadanie 15 Redmine
Redmine jest rozbudowanym narzędziem służącym do zarządzania projektem informatycznym. Do korzystania z niego, potrzebne jest posiadanie Ruby on rails. Dzięki redmine możemy m.in.:
Utrzymywać kontrolę nad wersjami plików projektu(wspiera SVN,CVS,git).
Przydzielać różne poziomy dostępu do plików projektu pracownikom.
Przydzielać pracownikom zadania.
Tworzyć kalendarze projektowe(diagram Gantta).
Tworzyć raporty z postępów w pracach nad projektem.
Instrukcja przedstawia instalację redmine na czystym systemie centos 6.5.W niektórych przypadkach wymagane będzie uruchomienie polecenia jako sudo(dot. głównie poleceń yum oraz service).:
Utwórz katalog dla redmine i pobierz kod źródłowy:
mkdir ~/redmine
cd ~/redmine
svn co http://svn.redmine.org/redmine/branches/2.5-stable redmine-2.5
Zainstaluj usługę mysql, załóż bazę danych dla redmine oraz skonfiguruj redmine do korzystania z bazy danych:
yum install mysql-server mysql php-mysql
service mysqld start
mysql –u root
CREATE DATABASE redmine CHARACTER SET utf8;
CREATE USER ‘redmine’@’localhost’ IDENTIFIED BY ‘password’;
GRANT ALL PRIVILEGES ON redmine.* TO ‘redmine’@’localhost’;
exit
cp ~/redmine/redmine-2.5/config/database.yml.example ~/redmine/redmine-2.5/config/database.yml
Edytuj plik database.yml podmieniając odpowiednie pola na następujące:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password
Przygotuj system do instalacji aplikacji bundler:
yum install ruby
yum install gcc g++ make automake autoconf curl-devel openssl-devel zlib-devel httpd-devel apr-devel apr-util-devel
yum install ruby-devel
yum install mysql-devel
yum install ImageMagick-devel
yum install rubygems
Zainstaluj bundler
gem install bundler
gem install json –v ‘1.8.1’
gem install mysql –v ‘2.8.1’
gem install rmagick –v ‘2.13.3’
bundle install –without development test
Jeżeli podczas wykonywania ostatniego polecenia pojawią się problemy(informacja o braku jakiegoś pakietu, należy wykonać polecenie
gem install nazwa_pakietu –v ‘wersja’
po czym powtórzyć bundle install
Przygotuj klucz sesji oraz bazę danych
cd ~/redmine/redmine-2.5
rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data
Zapewnij dostęp użytkownikowi do odpowiednich plików
cd ~/redmine/redmine-2.5
mkdir –p tmp/pdf public/plugin_assets
chown –R user_name:user_name files log tmp public/plugin_assets
chmod –R 755 files log tmp public/plugin_assets
Uruchom usługę poleceniem:
ruby ~/redmine/redmine-2.5/script/rails server webrick –e production
I sprawdź w przeglądarce jej działanie wpisując adres(login i hasło: admin)
http://localhost:3000
Uwagi
W zadaniu 6 podane jest polecenie do zmiany nazwy pliku:
$ svn rename file:///doc/index.html file:///doc/doc.html -m “rename”
powinno ono jednak wyglądać tak:
file:///lab-svn/svn/project/doc/index.html file:///doc/doc.html -m “rename”
W zadaniu 14, po nieudanej próbie wypchnięcia do oryginalnego repozytorium, pliku drugi.txt utworzonego w lab-git2 jesteśmy proszeni o wykonanie zmian w oryginalnym repozytorium(git-lab):
$ echo „aa” >> plik-mv.txt <- tutaj występuje błąd
$ git add plik-mv.txt <- a więc tutaj też
$ git commit –m „dodano aa"A następnie pobranie tej zmiany w drugim repozytorium(git-lab2). Dalszy opis ćwiczenia mówi że „Zmiany powinny zostać automatycznie scalone”.
Żadne zmiany jednak nie są scalane. Na git-lab2 zmienialiśmy plik drugi.txt, a na git-lab zmienialiśmy plik plik-mv.txt. aby w tym ćwiczeniu można było zauważyć to scalenie, zmiany w oryginalnym repozytorium także należy wykonać na pliku drugi.txt.