소스 컴파일에 대한 질문이요.

cd9cd9의 이미지

소스를 컴파일하여 설치/삭제하는 것에 대한 질문인데요. 여러가지 테스트를 하던 중에 궁금한 점이 있어서 오늘도 이렇게 질문을 드리게 됐습니다.^^;

<질문1>
구버젼의 xinetd슈퍼데몬을 삭제하고 새 버젼으로 설치하려고 rpm -e 명령으로 기존에 설치되어 있는 xinetd슈퍼데몬을 삭제하려고 했는데...

error: removing these packages would break dependencies:
xinetd is needed by finger-server-0.17-7
xinetd is needed by imap-2000-9
xinetd is needed by talk-server-0.17-9
xinetd is needed by telnet-server-0.17-10
xinetd is needed by amanda-client-2.4.2p2-1
xinetd is needed by comsat-0.17-2.2
xinetd is needed by amanda-server-2.4.2p2-1
xinetd is needed by samba-swat-2.2.0-2
xinetd is needed by tftp-server-0.17-9

와 같이 의존성 에러를 출력하면서 삭제를 할 수 없다고 나오더라구요. 물론 --nodeps 옵션으로 삭제할 수 있기는 하지만 걱정되는 것이 있어서 질문을 드려요
구버젼의 xinetd슈퍼데몬을 삭제할 때 의존성 에러를 무시하고 삭제할 경우 xinetd슈퍼데몬 패키지와 의존성이 있는 패키지에 문제가 생기게 되잖아요. 그런데 다시 xinetd슈퍼데몬 새 버젼을 rpm명령으로 설치하거나 컴파일하여 설치하면 구버젼의 xinetd슈퍼데몬을 삭제할 때 의존성 문제가 있었던 패키지가 다시 문제 없이 정상적으로 작동이 되나요?

<질문2>
rpm -e 명령으로 구버젼의 xinetd슈퍼데몬을 삭제한 후에 새 버젼의 xinetd슈퍼데몬을 다른 컴파일 옵션은 지정하지 않고 기본값으로 컴파일하여 설치했거든요. 그런데 /etc/rc.d/init.d/ 디렉토리에 있어야 할 xinetd파일이 없더라구요...ㅠ_ㅠ 원래 소스를 컴파일하여 설치할 경우에는 해당 시스템에 추가로 필요한 파일들을 사용자가 직접 만들어야 하는건가요? ㅠ_ㅠ 그래서 사람들이 소스를 컴파일하여 사용하기 보다는 rpm패키지를 사용하는 건가요?

<질문3>
컴파일한 디렉토리로 가서 "make uninstall" 명령을 실행하니까 프로그램이 삭제되는 듯한 메세지를 띄우면서 삭제가 된 것 같은데요. 컴파일해서 설치할 때는 여러가지 메세지가 많이 나오던데 삭제할 때는 삭제된 파일의 위치만 출력해 주고 끝내더라고요. 저는 xinetd슈퍼데몬을 컴파일하여 설치한 후에 make uninstall 명령을 실행하니까...

rm -f /usr/local/sbin/xinetd
rm -f /usr/local/sbin/itox
rm -f /usr/local/sbin/xconv.pl
rm -f /usr/local/man/man5/xinetd.conf.5
rm -f /usr/local/man/man8/xinetd.log.8
rm -f /usr/local/man/man8/xinetd.8
rm -f /usr/local/man/man8/itox.8

와 같은 메세지를 출력하더라구요. 이렇게 되면 컴파일한 프로그램이 완전히 삭제된 건가요?

<질문4>
"make uninstall" 명령은 컴파일 할 때 생성된 Makefile 이 있어야만 실행되던데요. 만약 실수로 Makefile을 삭제했거나 컴파일 했던 소스 디렉토리를 몽땅 삭제 해 버렸다면 나중에 어떻게 프로그램을 삭제할 수가 있는건가요?

질문은 여기까지예요....-_-;; 리눅스는 배우면 배울수록 어렵기만 하네요... 혼자 독학하려다 보니까 더더욱 힘이들고요...ㅠ_ㅠ 초보자의 마음을 헤아리셔서 좋은 답변 해 주셨으면 좋겠어요.

nohmad의 이미지

<답변-1>
상황에 따라 다릅니다. 버전 변화로 호환성에 문제가 생길 여지가 있으므로 실제로 해봐야 압니다. 대체로 마이너한 변화는 무시해도 상관없습니다.

<답변-2>
혹시 모르니 소스 디렉토리를 한 번 잘 찾아보시고, 없으면 xinetd 홈페이지나 메일링리스트에서 필요한 정보를 구할 수 있을 것입니다. 아, 구글을 빼먹을 뻔 했군요. 아니면 배포판에서 패키징한 버전을 구해서 압축 풀고 필요한 파일만 빼내는 방법도 있습니다.
해당 패키지에 대해 잘 알고 있다면 직접 컴파일하고 환경 구축해서 사용해도 좋겠지만, 아무래도 배포판에서 패키징하는 분들이 그 패키지에 대해 잘 알고 있을 것이므로, 이 사람들을 믿는 것이 좋을 것 같습니다. :)

<답변-3>
제대로 삭제된 것 같군요. 아시다시피 UNIX 프로그램들은 $PREFIX/{bin,sbin,lib,include,share,etc} 등과 /etc, /var 정도에 필요한 파일들을 복사해놓는데('설치'라는 것도 단순히 이런 디렉토리들에 파일들을 복사하는 일일 뿐입니다), 대체로 파일명을 보면 충분히 짐작 가능합니다.

<답변-4>
make uninstall 때문에 빌드가 끝난 소스 디렉토리를 놔둔다는 것은 좀 낭비 같습니다. :) <답변-3>에서 말했듯이 UNIX 프로그램이 사용하는 파일들이 있는 곳이 대체로 일정합니다. UNIX 프로그램들은 이러한 관습을 잘 지킵니다. 믿으셔도 좋습니다. 물론 Perl이나 Python, Java 패키지와 같은 것들은 좀 예외긴 합니다.

패키징 시스템을 이용하시기를 적극 권장합니다. 컴퓨터의 세계는 넓습니다. 그중에는 내게 꼭 필요하고, 또 내부에 대해 잘 아는 프로그램도 있지만, 잘 몰라도 상관없는 프로그램이 훠얼씬 많습니다. 이런 프로그램들 때문에 방해받고 싶지 않다면, 나를 대신해서 그런 프로그램들의 빌드와 설정을 대신해주는 전문가를 믿는 것이 좋습니다. 레드햇 또는 페도라, 데비안 GNU Linux, 젠투 리눅스 등은 그런 일들을 대신해주는 고마운 사람들입니다.

cd9cd9의 이미지

너무나 자세하고 친절하게 답변해 주셔서 너무나 감사드려요. 정말로 많은 도움이 됐어요. 열심히 공부하겠슴당. ^^

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.