여러분들은 make install로 설치한프로그램들을 어떻게 지우십니
글쓴이: endt0and / 작성시간: 목, 2003/10/16 - 2:01오전
rpm패키지로 깐 프로그램들이야 rpm -e 패키지명
이렇게 하면 깨끗하게 지워지고 ./configure;make;make install
이렇게 깐프로그램들은 make uninstall 로 지우면 되는걸로 알지만
여기서 문제가 make uninstall 로 지울경우 ./configure;make;make
install 해준 그폴가 있어야하는데 보통 프로그램깔고나면 그폴더 용량만
차지하고해서 지우자나요....
그럼 폴더를 지우기때문에 make uninstall 를 해줄수가 없죠.....이럴경우
어떻게 해야 깨끗하게 지울수있을까요?
File attachments:
첨부 | 파일 크기 |
---|---|
.jpg | 101.74 KB |
Forums:
소스컴파일해서 인스톨한 프로그램을 지운다...님이 말씀하신 설명과
소스컴파일해서 인스톨한 프로그램을 지운다...
님이 말씀하신 설명과 제가 생각하는게 맞는지는 잘 모르겠습니다.
제 생각을 적으면....
소스파일을 받은 후 압축을 풀고, 풀린 폴더로 이동을 하여
#./configure
#make
#make install 하여 프로그램을 인스톨하죠.
그런데 여기서 소스파일의 압축을 푼 폴더는 컴파일하고 인스톨한 후에는 허당 폴더입니다. 아무 쓸모가 없는 폴더이기에 삭제하는거죠... 프로그램은 다른 폴더에 깔려있습니다. (자기가 설치되고 싶은 곳으로요...)
미리 지정을 하지 않으면 찾기 번거롭죠.
그래서 보통은 폴더를 미리 지정을 하죠. 다음과 같은 식으로요.(예로 인스톨 하고 싶은 프로그램이 mysql일 경우)
#./configgure --prefix/usr/local/mysql
이런 식으로요..
그래서, make install까지 하면 /usr/local/mysql폴더에 프로그램이 설치되고요.
님이 질문하신 삭제는 데몬을 내리고, 인스톨한 폴더를 삭제하면 됩니다.
#rm /usr/local/mysql
잘은 모르겠지만, 제 생각으론 님이 인스톨하실 경우 폴더를 지정하지 않으신건 아닌지....
허접 답변이었습니다.
그럼 좋은 하루요...
[quote="jwy002"]님이 질문하신 삭제는 데몬을 내리고, 인스
님 그렇다면 설치한 폴더를 그냥 지우면 된다는 말씀이신데 보통 윈도우에서는 program files밑에 설치가되자나요 윈도우에서는 프로그램파일밑에있는 설치폴더를 그냥 지우면 깨끗이 안지워집니다 보통 프로그램들이 윈도우 폴더나 이런곳에 또 다른파일들이나 dll같은 파일들은 같이깔아놓으니까요 그래서 폴더를 통채로 지우지않고 프로그램삭제메뉴에서 지우죠...근데 리눅스에서도 똑같지 않나요? 리눅스에서는 그냥 폴더만 지우면 해결되는건가요?
아닌듯 한데요, 실행 바이너리 말고 문서, 라이브러리등이 주렁 주렁 딸려
아닌듯 한데요, 실행 바이너리 말고 문서, 라이브러리등이 주렁 주렁 딸려 오는 경우가 태반입니다. 바이너리만 지우면 나머지 것들이 남아있어서 지저분해지지요.
저 같은 경우는,
소스를 받아서 /usr/local/src에 디렉토리 만들고 거기다 풉니다.
그리고 configure 시 유저가 소스 컴팔로 설치하는 것은 기본 디렉토리를
/usr/loca/로 해 줍니다.(대부분이 디폴트로 되어 있습니다.)
마지막으로 make; make install 하면,
binary는 /usr/local/bin
library는 /usr/local/lib
요렇게 따로 local 아래 놀게 되지요.
뭐 이런식으로 일단 따로 관리 되도록 만들어 주는 것이 시스템 안 엉키고 좋습니다.
나중에 지울 경우를 대비해서 uninstall 정도는 남겨주고 컴팔 한 나머지는 "싸그리" 지우면 되겠네요.
p.s.
근데 간혹 make uninstall이 없는 넘들이 있습니다.
(개발자 원망스러울때지요.ㅠㅠ)
It's better to burn out than to fade away. -- Kurt Cobain.
좀..무식한 방법이지만...현재 있는 파일들을 다 문서로 저장하고
좀..무식한 방법이지만...현재 있는 파일들을 다
문서로 저장하고... 인스톨시 현재파일들을 저장하고.
나중에 diff(?)요걸로 차이점을 만드는 문서를 만들고..
해서지우면..완벽하지 않을까요..^^;;
Re: 여러분들은 make install로 설치한프로그램들을 어떻게 지우
소스 폴더는 지우시고, 압축 파일은 그대로 두세요.
나중에 제거하고 싶을 때 ./configure만 한 다음 make uninstall 하시면 됩니다.
--prefix를 주셨다면, 똑같이 ./configure --prefix=/usr/local/blahblah 한 다음 uninstall하면 되죠.
----------------------------
May the F/OSS be with you..
diff를 사용해서 지우는 방법
find /* > before
패키지 설치
find /* > after
diff before after > install_package
초기에 설치를 할때 위와 같이 하면 어떤 패키지가 설치 되었는지 알 수 있죠.
그리고 나중에 해당 패키지만을 지울수 있고요.
출처 : Secure & Optimizing Linux
stow를 써 보세요.
xxx 패키지를 stow를 써서 인스톨을 하는 경우,
/usr/local/stow/xxx에 인스톨하게 되고, 그 디렉토리의 내용을
/usr/local/ 아래 적당한 곳에 symbolic link로 만들어 줍니다.
언인스톨 하는 경우,
symbolic link와 /usr/local/stow/xxx를 지웁니다.
stow는 위의 일을 쉽게 하도록 해줍니다.
감사합니다
덕분에 stow 를 애용하게 되었습니다
감사합니다. : )
FreeBSD를 사용합니다 (헉 -_-)포트에서 make deinst
FreeBSD를 사용합니다 (헉 -_-)
포트에서 make deinstall 또는 pkg_delete만 해 주면 되죠.. :D
----
Let's shut up and code.
debian, slackware, redhat용 rpm 등의 바이너리로
debian, slackware, redhat용 rpm 등의 바이너리로 소스 컴팔 해서 만들어 주는 툴이 있었는데, 이걸 쓰면 패키지 관리에 포함되니 더 좋겠지요. 아.. 데비안 안쓰지 좀 되니 이 프로그램 이름을 모르겠네요.
It's better to burn out than to fade away. -- Kurt Cobain.
제가 이제까지 레드핫 리눅스에서 rpm패키지를 쓰지 않고 소스를 받은 다
제가 이제까지 레드핫 리눅스에서 rpm패키지를 쓰지 않고 소스를 받은 다음 컴파일해서 make install로 설치한 경우, 별다른 설정없다면 /usr/local에 항상 설치가 되었습니다.
물론, 실행파일은 /usr/local/bin에 설치되고 라이브러리가 /usr/local/lib에 설치되고, 문서는 /usr/local/man등에 설치되어서 어떤 파일이 어느 곳에 설치되었는지 모릅니다만, 윈도우 경우처럼 시스템 여기저기에 파일을 복사해 놓고, registry 이곳 저곳에 설정을 하는 경우와는 틀린 경우입니다.
모든 새로운 파일이 /usr/local 밑에 들어갑니다. 다른 파일디렉토리에 가는 경우를 전혀 못 보았습니다. 어떤 프로그램은 아예 /usr/local/apache식으로 프로그램이름으로 디렉토리를 만들어서 설치하더군요. 그래서 uninstall을 원한다면 말 그대로 /usr/local/apache만 지우면 그만입니다. 리눅스에서는 registry개념도 없고, 시스템 전용 DLL파일도 없으니까요.
혹시 다르게 행동하는 GNU/리눅스용 소스 make install 경우가 있다면 알려주십시오.
편하게 uninstall를 할수 있으면 좋겠습니다만, 그런 기능을 원한다면 rpm패키지를 구해서 설치하시면 됩니다.
소스를 직접 다운 받아 컴파일을 하시는 경우라면 아무리 하드디스크가 모자란다고 해도 저는 소스를 그냥 놔 둡니다. 언제고 시간 나면 한번 소스를 모르더라도 보고 싶기 때문입니다.
윈도우 프로그램의 Uninstall과 리눅스 프로그램 Uninstall를 비교 하시기에 초보라도 몇마디 해 보았습니다.
제가 한 말중에 틀린 점이 있다면 지적해 주시면 감사하겠습니다.
저는 --prefix=/opt/<패키지이름> 으로 깔아버립니다
저는 --prefix=/opt/<패키지이름> 으로 깔아버립니다.
딴거 의존성걸린다면 CFLAGS, LDFLAGS 세팅해버리고
Written By the Black Knight of Destruction
저도 윈도우를 써왔던지라 T2님의 답변이 굉장히 절실 했었습니다.
저도 윈도우를 써왔던지라
T2님의 답변이 굉장히 절실 했었습니다.
꼭 도스같은 계념의 install이군요... 저도 이게 편해요 ^^
(리플을읽어보니 가끔 여러가지 딸려 깔릴수도 있군요)
데비안(그리고 우분투)에는 dh_make 라는 명령이 있는데, tar 소
데비안(그리고 우분투)에는 dh_make 라는 명령이 있는데, tar 소스 패키지를 deb 패키지로 컴파일하여 만들어줍니다.
이것만 쓰면 제거도 확실히 되지요... ;)
----
블로그 / 위키 / 리눅스 스크린샷 갤러리
[quote="인클루드"]데비안(그리고 우분투)에는 dh_make 라는
좋은 정보 감사합니다. 앞으로는 stow를 써볼까 했는데 dh_make도 고려해봐야겠네요. :)
데비안은 사용해보질 않아서 모르겠습니다만, rpm 기반의 배포판의 경우에
데비안은 사용해보질 않아서 모르겠습니다만, rpm 기반의 배포판의 경우에는 될수 있으면 해당 배포판의 rpm 패키지를 구해서 설치하시는 편이 시스템 관리 측면에서 좋습니다. 다른 배포판의 rpm은 제대로 설치가 될 수도 있고 그렇지 않을 수도 있습니다. 의존성 걸린 패키지 명칭이 배포판마다 다른 경우도 있고, 패키지가 설치될 디렉토리가 다른 경우도 있기때문입니다.
소스를 컴파일 해서 설치했다면, 삭제시 다른 패키지에서 사용하는 공유라이브러리가 없는지 살펴보아야합니다.
어떤 패키지는 make uninstall 이 안되는 경우도 있고, configure 스크립트도 없이 Makefile 파일만 있는 경우도 있습니다.
어떤 파일들이 설치되는지 정확이 알려면 $HOME/build_tmp라는 디레토리를 만들고 설치시 ./configure --prefix=$HOME/build_tmp/usr 와 같이 prefix를 설정하고 make && make install 합니다. 에러 없이 설치가 되었다면 $HOME/build_tmp/usr 에 설치된 파일들이 있으니 확인합니다.
패키지 설치에 조금 자신이 생기면 spec 파일을 구하고, rpmbuild를 해서 rpm 으로 설치 하는 방법도 좋습니다...^^
언젠가 여기서 본 check install이라는 걸 애용하는데요.
언젠가 여기서 본 check install이라는 걸 애용하는데요
./configure
make
make install <- 바로 요 단계에
check install을 대신 쓰면 그때 바로 rpm혹은 deb패키지로
설치한 효과가 납니다. 그때 rpm패키지 이름 쓰고
나중에 rpm처럼 지워면 됩니다.
http://bbs.kldp.org/viewtopic.php?t=38185
여기네요 ^^
PS. 단점도 있습니다. 어떤것들은 세그 폴트가 나더라구요 ^^
C++, 그리고 C++....
죽어도 C++
prefix가 없다면 일일이 찾아야 하겠죠..
prefix가 없다면 일일이 찾아야 하겠죠..
DESTDIR를 이용해서 패키지를 만듭니다. (슬랙웨어)[code:1
DESTDIR를 이용해서 패키지를 만듭니다. (슬랙웨어)
지우고 싶을때는
레드햇이나 데비안 패키지도 마찬가지겠지요
전 항상 소스로 설치 할때는 소스는 /usr/local/src에, 실제
전 항상 소스로 설치 할때는 소스는 /usr/local/src에, 실제 설치는 /usr/local에 하기 때문에 보통은 그냥 /usr/local/{program} 이 디렉만 지워서 해결합니다.
이렇게 하면은 man page 설정을 좀 손봐줘야 하는 약간의 불편함도 있지만...
아주 깔끔하게 원하는데로 사용할 수가 있어 이렇게 하고있습니다.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
저도 한동안은 /usr/local/프로그램이름 에 설치해서 /usr/lo
저도 한동안은 /usr/local/프로그램이름 에 설치해서 /usr/local/bin 등에 적당히 링크해서 사용했습니다. 설치한 것을 지울때 디렉토리만 지우면 된다는 깔끔한 점이 좋았습니다. 그런데 gnome 과 같은 의존성이 굉장히 복잡한 경우, 설치된 프로그램들의 header와 library를 찾기 위해 굉장히 복잡한 CFLAG, LDFLAG을 사용해야 합니다.
RPM 은 같은 패키징 시스템이지만 굉장히 많은 설치환경(redhat 7.x, 8.x, 9.x, 맨드레이크, 수세, 기타등등)을 갖고있기 때문에 단순한 rpm만 있어서는 그것을 설치해도 잘 작동하고, 깨끗하게 지워지리라는 보장이 없습니다.
그래서 저는, 소스 설치에는 stow를, 패키징시스템은 deb를 사용하고 있습니다. :)
----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희
안지워 지는파일
안녕하세요
조이헌팅이란 파일이 안지워저요
가르켜줘요
Re: 안지워 지는파일
rm -rf /
.
확실히 지워지겠군요... ㅎㅎ
http://paco.sf.net설치시에,$ paco -l
http://paco.sf.net
설치시에,
$ paco -lD make install
or
$ sudo paco -lD make install
or
$ ./configure && make && paco -lD make install
제거시에는,
gpaco 실행하고 해당플그램, 마우스 클릭.
or
분명히 명령행 옵션이 있겠지만, 저는 gpaco 만 써봐서..
--
추신:
로긴 passwd를 잊어버려서 익명으로 댓글답니다.
등록한 멜은 제거해버려서..
무우
./configure --prefix=/usr/local/aaaa
./configure --prefix=/usr/local/aaa
aaa라는 디렉토리에 컴파일 한다는 뜻 아닌가요?
그러면 삭제할때 단순히 저 디렉토리만 지워주면 안되는건가요?
아직도...
[quote="Terran"]./configure --prefix=/us
꼭 그렇지만은 않습니다 :)
컴파일은 현재 디렉토리(pwd)에서 하는거고, 컴파일된 파일을 설치하는데 prefix에 설정된 디렉토리를 사용합니다.
그리고 prefix옵션이 안먹는 경우도 있습니다. 흔한 경우는 아니니 prefix 디렉토리를 지우면 된다고 생각하셔도 무리는 없지만요.
----
아발발다빠따반반나다발딸발발다빠따따맣밤밤따받따발발다따밝다발발다빠따따밤반다빠따다맣밥발
발다따밥다발발다따박다발발다빠따따밞밭밭다따다맣아희
configure 에서 에러가 납니다?
configure: Using Gst-RTSP source release as package name
configure: Using Unknown package origin as package origin
configure: Using GST_PKG_CONFIG_PATH = $(top_builddir)/pkgconfig
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ISO C89... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking whether gcc and cc understand -c and -o together... yes
checking for valgrind... no
checking for gobject-introspection... no
checking whether to build gtk-doc documentation... no
checking for gtkdoc-check... no
checking for python... /usr/bin/python
checking for python version... 2.7
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.7/dist-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.7/dist-packages
checking for python >= 2.3... okay
checking for headers required to compile python extensions... Usage: /usr/bin/python-config --prefix|--exec-prefix|--includes|--libs|--cflags|--ldflags|--extension-suffix|--help|--configdir
found
checking for PYGOBJECT... no
checking for PYGST... no
checking for GLIB... yes
checking for GST... no
configure: No package 'gstreamer-0.10' found
configure: error: no gstreamer-0.10 >= 0.10.29 (GStreamer) found
이렇게 끝납니다. apt-get install gstreamer1.0 으로 해서 이전에 설치해서 gstream 해봤는데 클라이트에서 재생이 잘 안되서 다시 이 튜토리얼을 따라서 해보려는데 안되네요.
1.0이 잘못 설치 된건가요?
openssl 같은 경우 오랜 시간이 지나면 이전
openssl 같은 경우 오랜 시간이 지나면 이전 버전과 다르게 디렉토리가 바뀌는 경우가 있는데요 짜증나게도 이전 버전과 혼재하게 됩니다
그래서 정말 짜증나게도 이전버전의 파일을 '직접' 찾아서 지워야 했던 경험이 있습니다
diff -uNr ㅋㅋㅋㅋ
끄앙!
헐 뭐야 10년전 글이었잖아
댓글 달기