Użyłem kodu źródłowego, aby zbudować jeden pakiet, taki jak poniżej:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libexecdir=/usr/lib --with-package-name="Myplugin" --with-package-origin="http://www.ubuntu.org/" --enable-gtk-doc --disable-static
make
make install
Ale niestety odkryłem, że jest to najnowsza wersja i zawiera wiele błędów, więc muszę ją usunąć / odinstalować. Ale jak mogę to zrobić? Próbowałem, make clean; make uninstall
ale nadal widzę, że istnieje:
# pkg-config --list-all | grep Myplugin
myplugin-....
$ ls /usr/lib/myplugin/libXYZ.so
exist....
Jak to teraz usunąć?
źródło
checkinstall
- sprawia, że cały problem wyparowuje.make install
uruchomiono go jako root (np.sudo make install
), Zwykle jest to wirtualne, aby uruchomićsudo make uninstall
oprogramowanie w celu usunięcia oprogramowania.make install
, nadal możesz używaćcheckinstall
. Zwyklecheckinstall
nadpisze wszystko, comake install
stworzył. Następnie po prostu użyjdpkg -r <package.deb>
i wszystko powinno zostać usunięte.Nie sądzę, że jest to błąd, warto przeczytać i nauczyć się korzystać z checkinstall podczas instalacji ze źródła.
możesz zainstalować checkinstall z repozytoriów, krótki opis pakietu;
CheckInstall śledzi wszystkie pliki utworzone lub zmodyfikowane przez skrypt instalacyjny („make install”, make install_modules ”,„ setup ”itp.), Buduje standardowy pakiet binarny i instaluje go w systemie, umożliwiając jego odinstalowanie za pomocą standardowe narzędzia do zarządzania pakietami Twojej dystrybucji.
Poniższe linki mogą być pomocne w lepszym zrozumieniu. http://en.wikipedia.org/wiki/CheckInstall
http://checkinstall.izto.org/
źródło
To nie jest błąd - kompilacja ze źródła jest nieobsługiwaną metodą instalowania oprogramowania, która całkowicie omija system zarządzania pakietami (z którego korzysta Centrum oprogramowania).
Nie ma standardowego sposobu instalowania lub odinstalowywania oprogramowania skompilowanego ze źródła, więc Ubuntu nie może wiedzieć, co robić. Oprogramowanie nie jest nawet wymienione jako zainstalowany program.
Należy postępować zgodnie z instrukcjami dystrybutora dotyczącymi instalacji i usuwania takiego niestandardowego oprogramowania. Możesz również skontaktować się z deweloperem, aby poprosić go o utworzenie pakietu Debian, aby można było użyć systemu zarządzania pakietami.
źródło
To nie jest błąd, to się dzieje, gdy programiści uciekają się do dystrybucji przez źródło, a nie przez natywne metody pakowania.
Możesz sprawić, że pliki źródłowe staną się pakietami Debiana, używając checkinstall lub dhbuild. Szczerze mówiąc, moim zdaniem - nowi użytkownicy powinni unikać instalowania ze źródła, a programiści powinni unikać dystrybucji tylko według źródła.
źródło
Znam kilka pakietów, które obsługują „dokonaj deinstalacji”, ale wiele innych, które obsługują, instalują DESTDIR = xxx dla instalacji etapowych.
Możesz użyć tego do stworzenia pakietu, który instalujesz zamiast instalować bezpośrednio ze źródła. Nie miałem szczęścia z checkinstall, ale fpm działa bardzo dobrze.
Może to również pomóc usunąć pakiet wcześniej zainstalowany przy użyciu make install . Po prostu wymuś zainstalowanie wbudowanego pakietu nad make install a następnie odinstaluj.
Na przykład ostatnio użyłem tego, aby poradzić sobie z protobuf-3.3.0. Na RHEL7:
Jeśli to możliwe, preferuj yum zamiast rpm.
Na Debian9:
Wolę apt na dpkg tam, gdzie możesz.
Opublikowałem również tę odpowiedź na stackoverflow
źródło
Musimy negocjować fakt, że make uninstall byłoby nie zawsze działa, tak i na dole jest bardziej proaktywne rozwiązanie.
Wymaga to użycia programu paco, który jest dostępny w Centrum oprogramowania Ubuntu. Po zainstalowaniu paco możemy użyć go w trybie dziennika, kiedy „dokonamy instalacji” programu. Paco działa jak opakowanie dla „make install” i tworzy dziennik w katalogu / var / log / paco z listą plików skopiowanych do różnych katalogów. Ponadto można było zobaczyć pliki w interfejsie Paco Front End.
Na przykład, kiedy skompilowałem PHP ze źródła, wykonałem następujące czynności:
Parametr l powoduje, że paco działa w trybie dziennika. To utworzyło plik dziennika w / var / log / paco o nazwie php5 (nazwa, którą podałem w poleceniu). Zawierał wszystkie pliki, które są kopiowane do różnych standardowych lokalizacji podczas instalacji. Do przeglądania plików możesz użyć edytora wiersza poleceń lub paco gui.
Poniżej znajduje się przykład pobierania listy plików za pomocą edytora wiersza poleceń sed
(zamień php5 na swoją nazwę pliku).
Po uzyskaniu listy plików wiesz, jak je usunąć, prawda? Rzeczywiście, możesz przekazać wyniki powyższego polecenia do rm, używając backticks, jak pokazano poniżej:
Zadanie wykonane!
Uwaga: Z powodu ograniczeń LD_PRELOAD, paco nie może śledzić śladu programów suid. Zobacz stronę podręcznika man.
źródło
Skompilowałem php-5.6.30 ze źródła bez konfigurowania go za pomocą openssl, więc musiałem wrócić i zainstalować go od zera. Użycie make uninstall nie działało, ponieważ Makefile dla php go nie obsługuje.
Jednak ten krok zadziałał dla mnie - wymieniłem wszystkie pliki związane z php i usunąłem je ręcznie, zajęło mi to około 5 minut bez zerwania potu. W podobny sposób możesz wykonać te kroki, aby odinstalować skompilowane oprogramowanie.
Zamień php na oprogramowanie, które musisz odinstalować
whereis php
Powyższe polecenie wyświetla katalogi, w których są zainstalowane pliki binarne, np .: / usr / local / bin / php, / usr / bin / php .. usuń każdy plik / katalog wymieniony w wynikach.
sudo rm -f /usr/local/bin/php
Zrób to ze wszystkimi plikami wymienionymi w powyższym pliku wyjściowym, a wszyscy są gotowi do zainstalowania nowszej wersji od zera.
źródło