|
make uninstall - brak reguł do wykonania
beel - 13-11-2008 16:21
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: # 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.
lis6502 - 13-11-2008 16:31
Mnie też tak się raz stało. ./configure && make && make unistall rozwiązało sprawę.
beel - 13-11-2008 16:34
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?
lis6502 - 13-11-2008 16:45
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 - 13-11-2008 17:32
Nie z siebie:). Z root'a...
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:
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?
lis6502 - 13-11-2008 17:39
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
./configure
albo
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 - 13-11-2008 18:51
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.
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: # ./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: configure: line 937: config.log: Permission denied
To "./configure" lub analgoicznie "sh configure" powinienem wykonywać z poziomu zwykłego usera?
Aha, na przyszłość zawartość plików i wyplujki z konsoli zamieszczaj w tagach code:)
No problem, wyszło się z wprawy:).
lis6502 - 13-11-2008 19:09
Dobrze, już nadążam :) Troszkę chaotycznie to wyszło:) Więc po kolei 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.
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ą)
tar xvvf jakastam_nazwa_archiwum.rozszerzenie
potem wszedł w nowoutworzony katalog i dopiero
./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 - 13-11-2008 20:20
Zrobiłem według zaleceń nie poskutkowało... nie pracuje program jak powinien. Ale co do tego:
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?
lis6502 - 13-11-2008 20:26
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 :)
beel - 14-11-2008 10:02
No to jajco kolejne ...
Przy "make" wywalał mi: /usr/bin/ld: cannot find -lssl collect2: ld returned 1 exit status make: *** [install_make] Błąd 1
No to poszedłem za ciosem, więc "aptitude search ssl" no i z tego co pamiętam zainstalowałem libssl-dev.. ale dalej coś chrzani że niezdefiniowane referencje ... itp.. zobaczcie sami: $ make if ! grep CONFIG_DIR src/config.h > /dev/null; then echo "#define CONFIG_DIR \"/usr/local/share\"" >> src/config.h; fi if ! test -f ggbot; then gcc -I.. -I/usr/include/readline -I/usr/local/include/python2.5 -I/usr/local/include -o ggbot src/ggbot.c /usr/local/lib/libgadu.a -lssl -lcrypto -ltermcap -lreadline -L/usr/local/lib -L/usr/local/lib/python2.5/config -lpython2.5 -lutil -lm -g -O2 -pthread -Xlinker -export-dynamic ; fi In file included from src/ggbot.c:105: src/users.c: In function ‘get_users’: src/users.c:216: warning: cast from pointer to integer of different size src/users.c:216: warning: cast from pointer to integer of different size In file included from src/ggbot.c:107: src/timers.c: In function ‘calculate_time’: src/timers.c:345: warning: comparison between pointer and integer src/timers.c:359: warning: comparison between pointer and integer src/timers.c:384: warning: comparison between pointer and integer src/timers.c:409: warning: comparison between pointer and integer In file included from src/ggbot.c:112: src/conf.c: In function ‘config_load’: src/conf.c:94: warning: cast from pointer to integer of different size src/conf.c:95: warning: cast from pointer to integer of different size In file included from src/ggbot.c:117: src/protocol.c: In function ‘ggbot_connect’: src/protocol.c:219: warning: cast from pointer to integer of different size src/protocol.c:220: warning: cast from pointer to integer of different size /usr/local/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_tmpnam': /home/bialy/download/Python-2.5.2/./Modules/posixmodule.c:6862: warning: the use of `tmpnam_r' is dangerous, better use `mkstemp' /usr/local/lib/python2.5/config/libpython2.5.a(posixmodule.o): In function `posix_tempnam': /home/bialy/download/Python-2.5.2/./Modules/posixmodule.c:6817: warning: the use of `tempnam' is dangerous, better use `mkstemp' /usr/local/lib/libreadline.so: undefined reference to `PC' /usr/local/lib/libreadline.so: undefined reference to `tgetflag' /usr/local/lib/libreadline.so: undefined reference to `tgetent' /usr/local/lib/libreadline.so: undefined reference to `UP' /usr/local/lib/libreadline.so: undefined reference to `tputs' /usr/local/lib/libreadline.so: undefined reference to `tgoto' /usr/local/lib/libreadline.so: undefined reference to `tgetnum' /usr/local/lib/libreadline.so: undefined reference to `BC' /usr/local/lib/libreadline.so: undefined reference to `tgetstr' collect2: ld returned 1 exit status make: *** [install_make] Błąd 1
Utumno - 14-11-2008 11:11
Takie problemy rozwiazuje sie w 5 minut w ten sposob:
1) google na +tgetent +tgetnum 2) wchodzimy na pierwszy znaleziony link : http://publib.boulder.ibm.com/infoce...f2/tgetent.htm 3) Widzimy ze te funkcje sa zdefiniowane w pliku naglowkowym 'curses.h' 4) apt-file search curses.h 5) i stad widzimy, ze pakiet ktorego Ci brakuje to
libncurses5-dev albo libncursesw4-dev
beel - 14-11-2008 11:24
Mam libncurses5-dev: # aptitude search libncurses v libncurses-dev - p libncurses-gst - Ncurses bindings for GNU Smalltalk p libncurses-ruby - ruby Extension for the ncurses C library p libncurses-ruby1.8 - ruby Extension for the ncurses C library p libncurses-ruby1.9 - ruby Extension for the ncurses C library i libncurses5 - shared libraries for terminal handling p libncurses5-dbg - debugging/profiling libraries for ncurses i A libncurses5-dev - developer's libraries and docs for ncurses i libncursesw5 - shared libraries for terminal handling (wide char p libncursesw5-dbg - debugging/profiling libraries for ncurses p libncursesw5-dev - developer's libraries for ncursesw
4) apt-file search curses.h
# apt-file search curses.h bash: apt-file: command not found
:shock:
Utumno - 14-11-2008 11:26
apt-get install apt-file apt-file update
- polecenie do wynajdywania, w jakim pakiecie znajduje sie dany plik.
[Dodano: 2008-11-14, 18:29]
Poza tym, NIE masz zainstalowanego libncursesw5-dev.
beel - 14-11-2008 11:50
Zainstalowałem.
Takie problemy rozwiazuje sie w 5 minut w ten sposob:
Niestety nie, nie pomogło. Wciąż ten sam błąd.
Utumno - 14-11-2008 12:02
'tgetent' i 'tgetnum' ciagle nie widzi? Wklej log.
Co to w ogole za programy?
beel - 14-11-2008 19:44
'tgetent' i 'tgetnum' ciagle nie widzi? Wklej log.
Wygląda na to, że nie widzi, bo: /usr/local/lib/libreadline.so: undefined reference to `PC' /usr/local/lib/libreadline.so: undefined reference to `tgetflag' /usr/local/lib/libreadline.so: undefined reference to `tgetent' /usr/local/lib/libreadline.so: undefined reference to `UP' /usr/local/lib/libreadline.so: undefined reference to `tputs' /usr/local/lib/libreadline.so: undefined reference to `tgoto' /usr/local/lib/libreadline.so: undefined reference to `tgetnum' /usr/local/lib/libreadline.so: undefined reference to `BC' /usr/local/lib/libreadline.so: undefined reference to `tgetstr' collect2: ld returned 1 exit status make: *** [install_make] Błąd 1
Jaki log cie interesuje, bo /var/sys/syslog nic ciekawego nie pokazuje no ale mogę wkleić ..
Co to w ogole za programy?
Jest to GGbot oparty o libgadu.
zanotowane.pldoc.pisz.plpdf.pisz.plminister.pev.pl
|