make uninstall - brak regu

Ogólne pytania dotyczące systemu
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

make uninstall - brak reguł do wykonania

Post autor: beel »

Okazuje się, iż czeka mnie ponowna instalacja pewnego softu ze względu na pominięcie tego co się okazało konieczne przed budową i instalacją programu (make && make install), czyli:

1. Edycja src/config.h
2. Edycja Makefile

Chcąc więc usunąć aplikację po niepoprawnej instalacji wykonuje:

Kod: Zaznacz cały

# make uninstall
make: *** Brak reguł do wykonania obiektu `uninstall'. Stop.
Wykonuje polecenie oczywiście będąc w odpowiednim katalogu (tam gdzie wykonywałem np. make) no i z poziomu root'a. Zatem pozostaje tylko usunięcie ręczne? Zanim jednak zacznę wyrzucać pliki.. chciałbym dowiedzieć się czy należy zwrócić przy tej operacji na coś szczególną uwagę ..

pzdr.
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Mnie też tak się raz stało. ./configure && make && make unistall rozwiązało sprawę.
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

Niestety u mnie nie pomogło zaproponowane rozwiązanie... Zatem co? Usunąć ręcznie to co się zainstalowało do /usr/local i zainstalować ponownie?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

A ten make unistall z poziomu kogo robisz? Siebie czy root'a ?
//edit: sprawdź w ogóle czy w Makefile masz reguły do unistall, może autor przewidział delete czy coś. Wiesz jak takiego czegoś szukać?
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

A ten make unistall z poziomu kogo robisz? Siebie czy root'a ?
Nie z siebie :) . Z root'a...
lis6502 pisze:sprawdź w ogóle czy w Makefile masz reguły do unistall, może autor przewidział delete czy coś. Wiesz jak takiego czegoś szukać?
Wygląda na to, że nie ma.. oto co pewnie zasługuje na wyszczególnienie w pliku:
Makefile pisze:prefix = /usr/local
datadir = ${prefix}/share
exec_prefix = ${prefix}
bindir = ${exec_prefix}/bin

LIBS = /usr/lib/libgadu.a -ltermcap -lreadline
INCLUDES = -I/usr/include/readline
CFLAGS = -g -O2 -pthread
LDFLAGS =
CC = gcc
INSTALL = /usr/bin/install -c

install_make:
....

all: install_make
....

install-root: install_make
....

install-user: install_make
....

install: install-root
Mogę je dopisać ? Czy raczej powinien zrobić to autor pliku Makefile?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Autorem pliku jest skrypt configure, którego autorem jest configure.in lub config(ure).ac. Coś musiałeś namieszać i to poważnie; skoro Makefile jest pusty, to NIE mogłeś odpalić ani make ani make install. Wejdź do tego katalogu i wpisz

Kod: Zaznacz cały

./configure
albo

Kod: Zaznacz cały

sh configure
z poziomu zwykłego usera i załącz na forum to co wyskoczy w konsoli (od ./configure do miejsca w którym nic się nie będzie działo). root ma wiele do powiedzenia, ale przy make install.

//dziwnym cudem nagle zobaczyłem na forum że coś jednak w tym makefile jest... Aha, na przyszłość zawartość plików i wyplujki z konsoli zamieszczaj w tagach code :)
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

lis6502 pisze:Autorem pliku jest skrypt configure, którego autorem jest configure.in lub config(ure).ac. Coś musiałeś namieszać i to poważnie]
Uzupełniałem posta, być może otworzyłeś go w mało odpowiednim momencie :) . Wyszczególniłem jakby główne sekcje ... i w nich nie widzę nic na miano uninstall... tylko install (zamiast kropek oczywiście są jakieś reguły, w razie potrzeby je pokażę).

Z poziomu root'a:

Kod: Zaznacz cały

# ./configure   
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking how to run the C preprocessor... gcc -E
checking for a BSD-compatible install... /usr/bin/install -c
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for the pthreads library -lpthreads... no
checking whether pthreads work without any flags... no
checking whether pthreads work with -Kthread... no
checking whether pthreads work with -kthread... no
checking for the pthreads library -llthread... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking if more special flags are required for pthreads... no
checking for cc_r... gcc
checking for pkg-config... no
checking for ssl.h... not found
checking for tgetent... no
checking for tgetent in -ltermcap... yes
checking which library has the termcap functions... using libtermcap
checking for readline.h... /usr/include/readline/readline.h
checking for rl_get_screen_size... yes
checking for python... /usr/local/bin/python
checking for libgadu... found
configure: creating ./config.status
config.status: creating Makefile


Konfiguracja zako�czona pomy�lnie.

Wpisz 'make', aby skompilowa� GGBot'a,
lub 'make install', aby zainstalowa� globalnie.
Z poziomu zwykłego usera:

Kod: Zaznacz cały

configure: line 937: config.log: Permission denied
To "./configure" lub analgoicznie "sh configure" powinienem wykonywać z poziomu zwykłego usera?
lis6502 pisze:Aha, na przyszłość zawartość plików i wyplujki z konsoli zamieszczaj w tagach code :)
No problem, wyszło się z wprawy :) .
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Dobrze, już nadążam :) Troszkę chaotycznie to wyszło :) Więc po kolei

Kod: Zaznacz cały

configure: line 937: config.log: Permission denied
z poziomu zwykłego użytkownika dostajesz, bo na 99% rozpakowałeś archiwum jako root i to on ma prawa do zapisu w tym katalogu, i wykonałeś już kompilację jako root, i to on ma prawa np. do pliku config.log.
beel pisze:To "./configure" lub analgoicznie "sh configure" powinienem wykonywać z poziomu zwykłego użytkownika?
W zasadzie to nie ma większego znaczenia, jednak zgodnie z regułą 'root tylko jak potrzeba' powinieneś używać komputera z poziomu zwykłego użytkownika, ./configure i make wykonywać też jako użytkownik, a dopiero make install jako root (chodzi o prawa do zapisu w katalogach innych niż Twój domowy).

Najpewniej byłoby gdybyś usunął ten katalog (jako root), zalogował się jako użytkownik i wydał w konsoli polecenie z paczką (zakładając, że jesteś w katalogu z nią)

Kod: Zaznacz cały

 tar xvvf jakastam_nazwa_archiwum.rozszerzenie
potem wszedł w nowoutworzony katalog i dopiero

Kod: Zaznacz cały

./configure
Sądzę jednak, że autor przewidział że GGBot będzie tak fajny, że nie będziesz chciał go usunąć :D Dla pewności skompiluj i zainstaluj raz jeszcze, jak nie ruszy to przeanalizuj Makefile i wykonaj operację odwrotną do make install.
beel
Beginner
Posty: 340
Rejestracja: 28 marca 2007, 07:06

Post autor: beel »

Zrobiłem według zaleceń nie poskutkowało... nie pracuje program jak powinien.
Ale co do tego:
lis6502 pisze:Dla pewności skompiluj i zainstaluj raz jeszcze, jak nie ruszy to przeanalizuj Makefile i wykonaj operację odwrotną do make install.
Nie mam Makefile (mam Makefile.in), próbowałem dwukrotnie postępować w sposób podany przez ciebie i wciąż nie ma Makefile.. a poprzednio był gdy wykonywałem wszystko z root'a. One pewnie zawierają tę samą treść no ale dziwne jak dla mnie .. bo nie są równoważne jak mnie się wydaje..

A treść pliku Makefile.in niczym innym się nie różni jak poprzednio Makefile, czyli nie ma w nim słowem nic wspomnianego na temat "uninstall".
Skoro nie ma teraz mozliwości bezpośredniej edycji pliku Makefile (pomijam, że zniknął) no to i tak nie usunę poprzez "make uninstall".

Daje więc już temu spokój, moje zasadnicze pytanie:
Ręcznie usuwać? Wszystko co związane z aplikacją z /usr/local? I będzie po problemie?
Awatar użytkownika
lis6502
Member
Posty: 1798
Rejestracja: 05 listopada 2008, 20:14
Lokalizacja: Miasto Szybowców

Post autor: lis6502 »

Makefile MUSISZ mieć po bezblędnym przejściu configure. Chyba że wykonujesz configure jako user w katalogu który utworzył root- ale wtedy nie configure nie przejdzie gładko... Skoro nie masz pozycji unistall: w Makefile to kicha deluxe. Musisz ręcznie pousuwać z tego /usr/local i napisać maila 'gratulacyjnego' do autora :)
ODPOWIEDZ