리눅스에서 libjpeg 설치시 오류가 납니다;;
글쓴이: newbboy / 작성시간: 화, 2006/02/28 - 2:21오후
[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
을 하니 저런 오류가 뜨네요 어떡하죠?
Forums:
/usr/local/man/man1/을 만들거나 파일을 쓸 권한이 없나보
/usr/local/man/man1/을 만들거나 파일을 쓸 권한이 없나보네요
노루가 사냥꾼의 손에서 벗어나는 것 같이, 새가 그물치는 자의 손에서 벗어나는 것 같이 스스로 구원하라 -잠언 6:5
그럼 어떻게?
그럼 어떻게 권한을 주어야 하나요?
워낙 초보라서 ........;;
chmod 777 폴더명 이렇게 하나요?
일단 오류의 발생 원인은 파일 설치(make install) 중에 /us
일단 오류의 발생 원인은 파일 설치(make install) 중에 /usr/local/man/man1 이라는 디렉터리가 없어서 cjpeg.1 및 이후의 파일들을 복사하지 못하는 것입니다. 가능한 몇 가지 해결 방법을 적어보겠습니다. 취향 따라 고르시면 됩니다:) 추천 순서는 0, 2, 1, 3입니다.
0. 패키지 설치
꼭 소스로 설치하셔야 하는 게 아니라면 사용하고 계신 패포판에서 사용하는 패키지 형식(rpm, dpkg, ...)으로 된 libjpeg 패키지를 찾아서 설치해 주시는 게 쉽기도 하고 설치 도중 문제를 만날 가능성도 적습니다.
* 여전히 소스 설치를 하기로 선택하셨다고 할 때... 어떤 목적으로 libjpeg를 설치하시려는지는 잘 모르겠지만 "... && make install"까지만 해주시면 패키지 내의 유틸리티 프로그램(cjpeg, djpeg, jpegtran, rdjpgcom, wrjpgcom)만 설치됩니다. 라이브러리 및 헤더 파일까지 설치하시려면 다음 명령도 추가로 내려주셔야 합니다.
1. man 디렉터리 만들어 주기
man 아래의 man1, man2, ... 디렉터리는 manpage를 저장하는 페이지입니다. "man chmod" 같은 명령을 입력하면 나오는 도움말 문서들이 여기에 저장되어 있습니다. 보통 /usr/man 디렉터리와 /usr/share/man 디렉터리는 있는데 /usr/local/man 디렉터리는 사용하고 계시는 배포판에 따라 없을 수도 있습니다. 다음과 같이 /usr/local/man 및 하부 디렉터리들을 만들어 주실 수 있습니다.
혹은 다음 명령으로 /usr/local/man 디렉터리를 이미 존재하는 /usr/man 디렉터리로 '연결'시켜 주실 수도 있습니다.
"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 저장 경로를 다른 디렉터리로 바꿔 주실 수 있습니다.
혹은 아예 다음 명령으로 모든 파일들을 "/usr/local/" 아래가 아니라 "/usr/" 아래에 설치하시는 것도 괜찮은 방법입니다.
그리고서 "make && make install" 해주시면 됩니다. "configure --help"로 실행하면 스크립트 실행시 지정해 줄 수 있는 각종 옵션들이 표시됩니다.
3. 설치 프로그램 실행 옵션 변경
(추천할 만한 방법은 아닙니다만;; )
오류를 만나기 전에 보면 /usr/bin/install 이라는 프로그램이 실행되고 있는 걸 보실 수 있습니다. 대략 파일 복사와 권한 조정 등 파일 설치와 관련된 여러 일들을 해주는 프로그램입니다. 그리고 이 프로그램을 실행할 때 "-D" 옵션을 주면 필요한 디렉터리를 알아서 만든 후 파일을 복사해 줍니다. "-D" 옵션을 주려면 Makefile을 살짝 건드려 주면 됩니다. 평소 사용하는 편집기로 Makefile을 열고서 "install"로 검색을 해보면 66행 근방에서 다음과 같은 내용을 보실 수 있습니다.
이 중 "INSTALL_DATA"가 manpage 설치시 쓰이는 명령입니다. 끝에 "-D" 옵션을 추가해 주시면 됩니다.
저장한 후 "make install"을 다시 실행해 주시면 됩니다.
$PWD `date`
댓글 달기