Skocz do zawartości

Usuwanie własnoręcznie skompilowanych programów.


Crocodil

Rekomendowane odpowiedzi

Cześć :)

 

Bardzo cenię sobie wygodę korzystania z rpm-ów ale jednak niektóre programy nie są dostępne w takiej postaci, a wtedy żeby z nich skorzystać trzebaby skompilować je samemu... Jest jednak jedna rzecz która mnie przed takim postępowaniem powstrzymuje.

 

Od jakiegoś czasu zadaję sobie pytanie - "Jak to potem usunąć?"

 

Czy jest jakiś prosty sposób na usunięcie ("odinstalowanie") programu skompilowanego przez samego siebie ze źródeł?

 

Przepraszam jeśli pytanie jest mocno "lamerskie" ale naprawdę chciałbym się dowiedzieć...

 

Pozdrawiam,

 

Crocodil :)

Odnośnik do komentarza
Udostępnij na innych stronach

Czy jest jakiś prosty sposób na usunięcie ("odinstalowanie") programu skompilowanego przez samego siebie ze źródeł?

 

To zależy od źródel.

 

NIektóre ( te lepiej przygotowane ) maję opcję make uninstall

lub mają skrypt uninstall - i wtedy wszystko jest cacy.

 

Należy tylko pamięteć, że coś takiego może nam spowodować zaburzenia w pracy innych programów - nie ma tu kontroli zależności jak w rpm.

 

Kryją się tu jednak pułapka:

Jeżeli instalujemy program z podaniem innych ścieżek niż domyślne - to odinstalowywanie nie zawsze się powiedzie

 

Poza tym zawsze pozostaje analiza make install - tam widać co jest wrzucane, więc wiadomo co wyrzucić

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 weeks later...
i zamias " make install " wpisac " make uninstall

Jak już napisał Mariusz, to nie zawsze działa :(

 

W systemie opartym o rpm lepiej nie instalować niczego ze źródeł, bo się tylko śmieci w systemie. Najlepiej zrobic samemu paczki, a jak ktoś nie potrafi, to do prostszych rozwiązań użyć wspomnianego checkinstall.

Odnośnik do komentarza
Udostępnij na innych stronach

A czy tak utworzone paczki beda dzialac, czy beda sie poprawnie instalowac  na innych maszynach z tym samym systemem ?

Z tym samym systemem - tak, w innej dystrybucji - to już gorzej, bo może się nie zgadzać układ katalogów, plików konfiguracyjnych, itd. Ewentualne problemy mogą być, gdy na maszynach są różne wersje bibliotek. W takim wypadku najprościej przebudować utworzony wcześniej .src.rpm i po kłopocie :)

 

Gdyby nie działało, to nie byłoby tyle różnych repozytoriów :P (a tak trochę OT, to mogłyby się one w końcu połączyć w jedno, bo jest mały bałagan).

 

Przy tworzeniu paczek najlepiej bazować się na już utworzonych - pościągać z netu .src.rpm (nawet z innych dystrybucji bazujących na rpmie), przeanalizować zawarte w nich spece i do roboty.

 

Jedną z zalet przygotowywania rpmów jest to, że można kompilować wszystko pod nasz procesor - może nie uruchomi się tego na innej architekturze (np. i486 lub i586), ale za to program chodzi szybciej, zajmuje mniej ramu i ogólnie jest fajnie :wink: Wystarczy zrobić odpowiednie wpisy w .rpmrc - ustalić architekturę i odpowiednie flagi kompilatora.

 

Jeśli chodzi o checkinstall, to jest dobry do robienia paczek dla własnych komputerów bądź dla znajomych, jednak gdybyśmy chcieli paczki udostępnić światu, zaleca się zrobić je samemu.

 

Aha, stadardowo ./configure ustala ścieżki do zainstalowania na /usr/local, podczas gdy w Fedorze jest /usr, więc wypadałoby ustalić te parametry:

  --prefix=PREFIX         install architecture-independent files in PREFIX
                         [/usr/local]
 --bindir=DIR           user executables [EPREFIX/bin]
 --sbindir=DIR          system admin executables [EPREFIX/sbin]
 --libexecdir=DIR       program executables [EPREFIX/libexec]
 --datadir=DIR          read-only architecture-independent data [PREFIX/share]
 --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
 --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
 --libdir=DIR           object code libraries [EPREFIX/lib]
 --includedir=DIR       C header files [PREFIX/include]
 --infodir=DIR          info documentation [PREFIX/info]
 --mandir=DIR           man documentation [PREFIX/man]

Odpowiednie wartości uzyskamy wpisyjąc rpm --showrc i 'grepować' otrzymany wynik, bo zbędnych informacji jest sporo :lol:

 

Jeśli chcemy też podrasować kompilowaną aplikację, trzeba odpowiednio ustawić zmienne CFLAGS, CXXFLAGS i LDFLAGS. Więcej informacji na ten temat tutaj.

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 weeks later...
  • 1 year later...
  • 1 month later...

Sorry, że tak późno odpowiadam, ale dopiero teraz zauważyłem pytanie ;-)

 

Zgodnie z FHS 2.3 ręcznie kompuilowane programy mają lądować do /usr/local/ by podczas aktualizacji systemu nie zostały nadpisane → http://www.pathname.com/fhs/pub/fhs-2.3.ht...LLOCALHIERARCHY

 

Programy pochodzace z dystrybucji powinny mieć prefix /usr.

Odnośnik do komentarza
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
×
×
  • Dodaj nową pozycję...