Czy spotkaliście się kiedyś z problemem związanym z zarządzaniem z aplikacjami, które nie są dedykowane specjalnie dla maca? Załóżmy, że zainstalowaliśmy bardzo przyjemny konsolowy klient ftp - ncftp. Mogliśmy zainstalować go na kilka sposobów. Możemy pobrać skompilowaną paczkę, albo zainstalować ncftp ze źródeł. Oba te sposoby mają jedną wadę. Załóżmy, że chcemy usunąć aplikację (lub ją zaktualizować) - wtedy pojawiają się drobne problemy. Dodatkowo w przypadku źródeł musimy zachować tak zwane meta pliki - co w przypadku mniej doświadczonych użytkowników sprowadza się do zachowania całego katalogu ze źródłami aplikacji. O ile aplikacja zajmuje kilka mega nie ma z tym najmniejszego problemu. Problem rodzi się gdy tych aplikacji jest na tyle dużo, że przechowywanie źródeł staje się problemem lub gdy te przechowujemy źródła, które zajmują sporo przestrzeni dyskowej. Idealnym rozwiązaniem okazuje się być macports…
Czym w ogóle jest macports?
Wyobraźmy sobie, że instalujemy w/w klienta ftp. Pierw pobieramy źródła programu, następnie je rozpakowujemy, później przechodzimy do powstałego katalogu i wykonujemy polecenia:
./configure && make && sudo make install
Całą tą sekwencje można by ułatwić stosując pewną procedurę zachowań. Tworzymy skrypt gdzie wpisujemy wszystkie polecenia, które wykonujemy przy instalacji - oczywiście dodajemy tam też wszystkie wyjątki, sprawdzanie kodu błędu poprzedniej operacji itd. Po takiej operacji w przyszłości aby zainstalować daną aplikację uruchamiamy odpowiadający jej tzw. PORT (lub PKGBUILD).
Macports jest właśnie zbiorem takich Portów które wykonują za nas całą brudną robotę. Dodatkowo system zarządzania portami poinformuje nas o aktualizacjach konkretnej aplikacji. W łatwy sposób też możemy odinstalować daną aplikację.
Instalacja MacPorts
MacPorts możemy zainstalować z paczki i moim zdaniem jest to jak najbardziej słuszne rozwiązanie. Jeżeli to Ci wystarczy to przejdź do kolejnego punktu.
Skupmy się na instalacji macports ze źródeł. W systemach uniksowych wszystkie katalogi bin (/bin, /usr/bin, /usr/local/bin, /sbin, /usr/sbin/, /usr/local/sbin) służą do przechowywania tzw. plików binarnych, czyli gotowych skompilowanych programów (katalogi sbin to katalogi z programami super użytkownika). Nic nie stoi na przeszkodzie aby trzymać pliku binarne w katalogu /dupa. Niemniej jest to tyle niedobre rozwiązanie, że taka nazwa nic zwykłemu użytkownikowi nie powie. Przyjęło się, że aplikacje systemowe trzymane są w katalogu /bin. Aplikacje użytkownika instalowane wraz z systemem powinny być trzymane w katalogu /usr/bin. Logiczne prawda? W katalogu /usr/bin/local trzymane być powinny aplikacje instalowane przez użytkownika. Jest jeszcze jeden katalog i to właśnie na nim powinniśmy się skupić. Katalog /opt wskazuje miejsce przechowywania wszystkich tzw. aplikacji opcjonalnych. Jest to o tyle dobre miejsce, że gdy usuniemy ten katalog po prostu usuniemy wszystkie aplikacje w nim zainstalowane - nie naruszając struktury systemu. Standardowo macporst z paczek instalowany jest właśnie w tym katalogu. Teraz już wiesz, że aby odinstalować w przyszłości macports wystarczy usunąć ten katalog. Jeśli chcesz instalować macports ze źródeł, powinieneś wydać polecenie
./configure –prefix=/opt/local
Oczywiście możesz wskazać dowolny katalog, tylko miej na uwadze to o czym pisałem wcześniej. Jeśli bardzo chcesz możesz wykonać następujące polecenie:
./configure –prefix=/opt/local –localstatedir=/var –sysconfdir=/etc
Rezultatem będzie przechowywanie głównego programu w katalogu /opt, konfiguracji w katalogu /etc, a plików aplikacji (m.in. logów) w katalogu /var.
Zainstalowałem macports. Polecenie port nie dziala!
Macports przy instalacji z paczki, tworzy całą swoją strukturę w katalogu /opt/local. Program, który służy do zarządzania naszymi portami - port, mieści się więc w katalogu /opt/local/bin. Katalog ten nie jest w tzw. ścieżce przeszukiwań (PATH). Rozwiązaniem problemu jest wydanie polecenia:
echo ” PATH=$PATH:/opt/local/bin:/opt/local/sbin” >> ~/.bash_login
Gdybyśmy chcieli mieć jeszcze dostęp do tzw. manuali (pomocy) warto wydać polecenie:
echo “MANPATH=/opt/local/share/man:$MANPATH” >> ~/.bash_login
Używanie Macports
Polecenie, które służy do aktualizacji całego drzewa portów:
sudo port -v selfupdate
Przełącznik -v włącza tzw. tryb gadatliwy, dzięki czemu zyskamy ciut więcej informacji.
Polecenie, które służy do wyszukiwania aplikacji w drzewie portów:
sudo port search nazwa
Wyświetlanie wszystkich portów:
sudo port list
Wyświetlanie informacji o porcie:
sudo port info nazwa
Wyświetlanie zależności, które będą instalowane wraz z wybraną aplikacją:
sudo port deps nazwa
Wyświetlanie tzw. wariantów ( za chwile o nich więcej ):
sudo port variants nazwa
Instalacja aplikacji:
sudo port install nazwa
Aplikację możemy zainstalować z tzw. wariantem. Załóżmy że chcemy zainstalować wget bez obsługi ssl:
sudo port install wget +no_ssl
Usuwanie aplikacji:
sudo port uninstall nazwa
Aktualizacja aplikacji:
sudo port upgrade nazwa
Wyświetlanie zainstalowanych aplikacji:
sudo port installed
Wyświetlanie starych aplikacji (których dostępna jest aktualizacja):
sudo port outdated
Więcej przełączników możecie poznać wydając polecenie man port
Dziękuję tym co dotarli do końca wpisu :)
Thats all folks :)


Wpisy (RSS)
w gentoo prefix szybciej pojawiaja sie nowe wersje… no i przynajmniej nie uzywa sie tcl’a