ďťż
 
 
   make uninstall - brak reguł do wykonania
 
 

Tematy

 
    
 

 

 

 

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.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • minister.pev.pl

  •  

     


     

     
    Copyright 2003. MĂłj serwis