리눅스에서 libjpeg 설치시 오류가 납니다;;

newbboy의 이미지

[root@localhost jpeg-6b]# ./configure && make && make install
checking for gcc... gcc
checking whether the C compiler (gcc  ) works... yes
checking whether the C compiler (gcc  ) is a cross-compiler... no
checking whether we are using GNU C... yes
checking how to run the C preprocessor... gcc -E
checking for function prototypes... yes
checking for stddef.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for size_t... yes
checking for type unsigned char... yes
checking for type unsigned short... yes
checking for type void... yes
checking for working const... yes
checking for inline... __inline__
checking for broken incomplete types... ok
checking for short external names... ok
checking to see if char is signed... yes
checking to see if right shift is signed... yes
checking to see if fopen accepts b spec... yes
checking for a BSD compatible install... /usr/bin/install -c
checking for ranlib... ranlib
checking libjpeg version number... 62
creating ./config.status
creating Makefile
creating jconfig.h
gcc -O2  -I.   -c -o jcapimin.o jcapimin.c
gcc -O2  -I.   -c -o jcapistd.o jcapistd.c
gcc -O2  -I.   -c -o jctrans.o jctrans.c
gcc -O2  -I.   -c -o jcparam.o jcparam.c
gcc -O2  -I.   -c -o jdatadst.o jdatadst.c
gcc -O2  -I.   -c -o jcinit.o jcinit.c
gcc -O2  -I.   -c -o jcmaster.o jcmaster.c
gcc -O2  -I.   -c -o jcmarker.o jcmarker.c
gcc -O2  -I.   -c -o jcmainct.o jcmainct.c
gcc -O2  -I.   -c -o jcprepct.o jcprepct.c
gcc -O2  -I.   -c -o jccoefct.o jccoefct.c
gcc -O2  -I.   -c -o jccolor.o jccolor.c
gcc -O2  -I.   -c -o jcsample.o jcsample.c
gcc -O2  -I.   -c -o jchuff.o jchuff.c
gcc -O2  -I.   -c -o jcphuff.o jcphuff.c
gcc -O2  -I.   -c -o jcdctmgr.o jcdctmgr.c
gcc -O2  -I.   -c -o jfdctfst.o jfdctfst.c
gcc -O2  -I.   -c -o jfdctflt.o jfdctflt.c
gcc -O2  -I.   -c -o jfdctint.o jfdctint.c
gcc -O2  -I.   -c -o jdapimin.o jdapimin.c
gcc -O2  -I.   -c -o jdapistd.o jdapistd.c
gcc -O2  -I.   -c -o jdtrans.o jdtrans.c
gcc -O2  -I.   -c -o jdatasrc.o jdatasrc.c
gcc -O2  -I.   -c -o jdmaster.o jdmaster.c
gcc -O2  -I.   -c -o jdinput.o jdinput.c
gcc -O2  -I.   -c -o jdmarker.o jdmarker.c
gcc -O2  -I.   -c -o jdhuff.o jdhuff.c
gcc -O2  -I.   -c -o jdphuff.o jdphuff.c
gcc -O2  -I.   -c -o jdmainct.o jdmainct.c
gcc -O2  -I.   -c -o jdcoefct.o jdcoefct.c
gcc -O2  -I.   -c -o jdpostct.o jdpostct.c
gcc -O2  -I.   -c -o jddctmgr.o jddctmgr.c
gcc -O2  -I.   -c -o jidctfst.o jidctfst.c
gcc -O2  -I.   -c -o jidctflt.o jidctflt.c
gcc -O2  -I.   -c -o jidctint.o jidctint.c
gcc -O2  -I.   -c -o jidctred.o jidctred.c
gcc -O2  -I.   -c -o jdsample.o jdsample.c
gcc -O2  -I.   -c -o jdcolor.o jdcolor.c
gcc -O2  -I.   -c -o jquant1.o jquant1.c
gcc -O2  -I.   -c -o jquant2.o jquant2.c
gcc -O2  -I.   -c -o jdmerge.o jdmerge.c
gcc -O2  -I.   -c -o jcomapi.o jcomapi.c
gcc -O2  -I.   -c -o jutils.o jutils.c
gcc -O2  -I.   -c -o jerror.o jerror.c
gcc -O2  -I.   -c -o jmemmgr.o jmemmgr.c
gcc -O2  -I.   -c -o jmemnobs.o jmemnobs.c
rm -f libjpeg.a
ar rc libjpeg.a  jcapimin.o jcapistd.o jctrans.o jcparam.o jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o jccoefct.o jccolor.o jcsample.o jchuff.o jcphuff.o jcdctmgr.o jfdctfst.o jfdctflt.o jfdctint.o jdapimin.o jdapistd.o jdtrans.o jdatasrc.o jdmaster.o jdinput.o jdmarker.o jdhuff.o jdphuff.o jdmainct.o jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o jidctint.o jidctred.o jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o jcomapi.o jutils.o jerror.o jmemmgr.o jmemnobs.o
ranlib libjpeg.a
gcc -O2  -I.   -c -o cjpeg.o cjpeg.c
gcc -O2  -I.   -c -o rdppm.o rdppm.c
gcc -O2  -I.   -c -o rdgif.o rdgif.c
gcc -O2  -I.   -c -o rdtarga.o rdtarga.c
gcc -O2  -I.   -c -o rdrle.o rdrle.c
gcc -O2  -I.   -c -o rdbmp.o rdbmp.c
gcc -O2  -I.   -c -o rdswitch.o rdswitch.c
gcc -O2  -I.   -c -o cdjpeg.o cdjpeg.c
gcc  -o cjpeg cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o rdswitch.o cdjpeg.o libjpeg.a
gcc -O2  -I.   -c -o djpeg.o djpeg.c
gcc -O2  -I.   -c -o wrppm.o wrppm.c
gcc -O2  -I.   -c -o wrgif.o wrgif.c
gcc -O2  -I.   -c -o wrtarga.o wrtarga.c
gcc -O2  -I.   -c -o wrrle.o wrrle.c
gcc -O2  -I.   -c -o wrbmp.o wrbmp.c
gcc -O2  -I.   -c -o rdcolmap.o rdcolmap.c
gcc  -o djpeg djpeg.o wrppm.o wrgif.o wrtarga.o wrrle.o wrbmp.o rdcolmap.o cdjpeg.o libjpeg.a
gcc -O2  -I.   -c -o jpegtran.o jpegtran.c
gcc -O2  -I.   -c -o transupp.o transupp.c
gcc  -o jpegtran jpegtran.o rdswitch.o cdjpeg.o transupp.o libjpeg.a
gcc -O2  -I.   -c -o rdjpgcom.o rdjpgcom.c
gcc  -o rdjpgcom rdjpgcom.o
gcc -O2  -I.   -c -o wrjpgcom.o wrjpgcom.c
gcc  -o wrjpgcom wrjpgcom.o
/usr/bin/install -c cjpeg /usr/local/bin/cjpeg
/usr/bin/install -c djpeg /usr/local/bin/djpeg
/usr/bin/install -c jpegtran /usr/local/bin/jpegtran
/usr/bin/install -c rdjpgcom /usr/local/bin/rdjpgcom
/usr/bin/install -c wrjpgcom /usr/local/bin/wrjpgcom
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/man/man1/cjpeg.1
/usr/bin/install: cannot create regular file `/usr/local/man/man1/cjpeg.1': 그런 파일이나 디렉토리가 없음
make: *** [install] 오류 1

물론 다운받은 폴더에서 tar로 압축을 풀고
./configure && make && make install

을 하니 저런 오류가 뜨네요 어떡하죠?

eminency의 이미지

/usr/local/man/man1/을 만들거나 파일을 쓸 권한이 없나보네요

노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5

newbboy의 이미지

그럼 어떻게 권한을 주어야 하나요?

워낙 초보라서 ........;;

chmod 777 폴더명 이렇게 하나요?

wariua의 이미지

일단 오류의 발생 원인은 파일 설치(make install) 중에 /usr/local/man/man1 이라는 디렉터리가 없어서 cjpeg.1 및 이후의 파일들을 복사하지 못하는 것입니다. 가능한 몇 가지 해결 방법을 적어보겠습니다. 취향 따라 고르시면 됩니다:) 추천 순서는 0, 2, 1, 3입니다.

0. 패키지 설치
꼭 소스로 설치하셔야 하는 게 아니라면 사용하고 계신 패포판에서 사용하는 패키지 형식(rpm, dpkg, ...)으로 된 libjpeg 패키지를 찾아서 설치해 주시는 게 쉽기도 하고 설치 도중 문제를 만날 가능성도 적습니다.

* 여전히 소스 설치를 하기로 선택하셨다고 할 때... 어떤 목적으로 libjpeg를 설치하시려는지는 잘 모르겠지만 "... && make install"까지만 해주시면 패키지 내의 유틸리티 프로그램(cjpeg, djpeg, jpegtran, rdjpgcom, wrjpgcom)만 설치됩니다. 라이브러리 및 헤더 파일까지 설치하시려면 다음 명령도 추가로 내려주셔야 합니다.

# make install-lib
# make install-headers

1. man 디렉터리 만들어 주기
man 아래의 man1, man2, ... 디렉터리는 manpage를 저장하는 페이지입니다. "man chmod" 같은 명령을 입력하면 나오는 도움말 문서들이 여기에 저장되어 있습니다. 보통 /usr/man 디렉터리와 /usr/share/man 디렉터리는 있는데 /usr/local/man 디렉터리는 사용하고 계시는 배포판에 따라 없을 수도 있습니다. 다음과 같이 /usr/local/man 및 하부 디렉터리들을 만들어 주실 수 있습니다.

# mkdir -p /usr/local/man/man{1,2,3,4,5,6,7,8}

혹은 다음 명령으로 /usr/local/man 디렉터리를 이미 존재하는 /usr/man 디렉터리로 '연결'시켜 주실 수도 있습니다.
# ln -s /usr/man /usr/local

"ls -l /usr/local/man" 해보시면 link 파일이 만들어진 걸 확인하실 수 있습니다.
디렉터리를 만들거나 연결해 주신 다음에 "make install"을 다시 실행해 주시면 됩니다.

2. 설치 경로 바꿔주기
manpage 저장 경로는 configure를 실행할 때 지정이 가능합니다. libjpeg(및 대부분의 패키지)는 "/usr/local/"을 기본 경로로 잡아서 여기에 "bin"을 붙인 디렉터리(/usr/local/bin)에는 실행 파일들을, "man"을 붙인 디렉터리(/usr/local/man)에는 manpage 파일들을 저장합니다. 하지만 configure 실행시 다음과 같이 옵션을 주면 manpage 저장 경로를 다른 디렉터리로 바꿔 주실 수 있습니다.

# ./configure --mandir=/usr/man

혹은 아예 다음 명령으로 모든 파일들을 "/usr/local/" 아래가 아니라 "/usr/" 아래에 설치하시는 것도 괜찮은 방법입니다.
# ./configure --prefix=/usr

그리고서 "make && make install" 해주시면 됩니다. "configure --help"로 실행하면 스크립트 실행시 지정해 줄 수 있는 각종 옵션들이 표시됩니다.

3. 설치 프로그램 실행 옵션 변경
(추천할 만한 방법은 아닙니다만;; )
오류를 만나기 전에 보면 /usr/bin/install 이라는 프로그램이 실행되고 있는 걸 보실 수 있습니다. 대략 파일 복사와 권한 조정 등 파일 설치와 관련된 여러 일들을 해주는 프로그램입니다. 그리고 이 프로그램을 실행할 때 "-D" 옵션을 주면 필요한 디렉터리를 알아서 만든 후 파일을 복사해 줍니다. "-D" 옵션을 주려면 Makefile을 살짝 건드려 주면 됩니다. 평소 사용하는 편집기로 Makefile을 열고서 "install"로 검색을 해보면 66행 근방에서 다음과 같은 내용을 보실 수 있습니다.

# installation program
INSTALL= /usr/bin/install -c
INSTALL_PROGRAM= ${INSTALL}
INSTALL_LIB= ${INSTALL} -m 644
INSTALL_DATA= ${INSTALL} -m 644

이 중 "INSTALL_DATA"가 manpage 설치시 쓰이는 명령입니다. 끝에 "-D" 옵션을 추가해 주시면 됩니다.
...
INSTALL_DATA= ${INSTALL} -m 644 -D

저장한 후 "make install"을 다시 실행해 주시면 됩니다.

$PWD `date`

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.