Strona 1 z 2

make uninstall - brak reguł do wykonania

: 13 listopada 2008, 16:21
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.

: 13 listopada 2008, 16:31
autor: lis6502
Mnie też tak się raz stało. ./configure && make && make unistall rozwiązało sprawę.

: 13 listopada 2008, 16:34
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?

: 13 listopada 2008, 16:45
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ć?

: 13 listopada 2008, 17:32
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?

: 13 listopada 2008, 17:39
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 :)

: 13 listopada 2008, 18:51
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 :) .

: 13 listopada 2008, 19:09
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.

: 13 listopada 2008, 20:20
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?

: 13 listopada 2008, 20:26
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 :)