Conky-1.7.2 컴파일관련;;

콘키를 활용해볼까 하고… 설치하려고 했는데;;
왠지 공식저장소에 있는 1.6.1 버전보다 최신버전을 설치해보면서 삽질(?)을 해보려고 하는데;;ㅋㅋ
잘 안되네요;;ㅋ

./configure 하면…

[code:2z8lyfld]checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
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 ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for ar... ar
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking whether gcc and cc understand -c and -o together... yes
checking for pkg-config... yes
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.19... yes
checking for fopencookie... yes
checking for funopen... no
checking for X11... yes
checking for LUA... no
checking for LUA51... no
checking for LUA51... configure: error: Package requirements (lua5.1 >= 5.1) were not met:

No package ‘lua5.1’ found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LUA51_CFLAGS
and LUA51_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[/code:2z8lyfld]

[color=#FF0000:2z8lyfld]checking for LUA51… configure: error: Package requirements (lua5.1 >= 5.1) were not met:[/color:2z8lyfld]

위에서 에러떠있는 부분 lua5.1의 의존성문제 인것 같은데;;;

lua5.1
lua50

이 이미 설치되어 있는 상태였는데도;;
이상하게 계속 에러가 체크되네요;;
혹시 다른 쪽의 문제가 아닌가 하고;;;ㅋ 여기에 올려봅니다;

ps. 힘들면… 일단 저장소에 있는 것을 사용할까 생각 중이라는;;
근데 어차피 할 것 없어서;; 삽질하고 있답니다;;

/media/sdc1/hwp-lib$ dpkg -l |grep lua
ii liblua5.1-0 5.1.3-1 Simple, extensible, embeddable programming l
ii liblua5.1-0-dev 5.1.3-1 Simple, extensible, embeddable programming l
ii liblua50 5.0.3-3 Main interpreter library for the Lua 5.0 pro
ii liblualib50 5.0.3-3 Extension library for the Lua 5.0 programmin

그냥 lua말고 라이브러리 dev패키지를 설치해 주세요

sudo apt-get install liblua5.1-0-dev liblua5.1-0

configure 과정에서 찾는건 /usr/lib/pkgconfig/lua5.1.pc 입니다
그 파일에서 버젼 정보를 읽고 적절한 경로를 설정하죠

/media/sdc1/hwp-lib$ dpkg -L liblua5.1-0-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/liblua5.1-0-dev
/usr/share/doc/liblua5.1-0-dev/copyright
/usr/include
/usr/include/lua5.1
/usr/include/lua5.1/lua.h
/usr/include/lua5.1/luaconf.h
/usr/include/lua5.1/lualib.h
/usr/include/lua5.1/lauxlib.h
/usr/include/lua5.1/lua.hpp
/usr/lib
/usr/lib/liblua5.1.la
/usr/lib/liblua5.1.a
/usr/lib/pkgconfig
/usr/lib/pkgconfig/lua5.1.pc
/usr/share/doc/liblua5.1-0-dev/README.Debian.gz
/usr/share/doc/liblua5.1-0-dev/changelog.Debian.gz
/usr/lib/liblua5.1.so

/media/sdc1/hwp-lib$ more /usr/lib/pkgconfig/lua5.1.pc
prefix=/usr
major_version=5.1
version=5.1.3
#prefix=/usr
#major_version=5.1
#version=5.1.0

lib_name=lua${major_version}
libdir=${prefix}/lib
includedir=${prefix}/include

The following are intended to be used via "pkg-config --variable".

The location of the libtool library. This is used when linking to the Lua

library via libtool.

libtool_lib=${libdir}/lib${lib_name}.la

Install paths for Lua modules. For example, if a package wants to install

Lua source modules to the /usr/local tree, call pkg-config with

"–define-variable=prefix=/usr/local" and "–variable=INSTALL_LMOD".

INSTALL_LMOD=${prefix}/share/lua/${major_version}
INSTALL_CMOD=${prefix}/lib/lua/${major_version}

Name: Lua
Description: Lua language engine
Version: ${version}
Requires:
Libs: -L${libdir} -l${lib_name}
Libs.private: -lm
Cflags: -I${includedir}/${lib_name}

1.7.2 deb로 있습니다. launchpad에 있을거임…

auto-apt 라는 아주 좋은 툴이 있습니다.

sudo apt-get install auto-apt 하셔서 까신후에

sudo auto-apt local-update update update-db 등 하신 후에

auto-apt run ./configure 하시면 의존 패키지 다 깔립니다.

그후에 make 하신후 sudo checkinstall 하세요.

make clean 하면 지저분해집니다.

checkinstall 은 sudo apt-get install checkinstall 하시면 됩니다.

deb 파일을 간편하게 만드는 툴이죠.

음…ㅎㅎ 모두들 감사합니다아^^;;
어차피 할 것 없어서;;ㅋ 삽질을 좀 해볼려고 deb파일로 설치를 안하고 직접 컴파일해본 것인데요;;
아직 잘 모르는 부분이 많지만;;ㅋ 어째뜬 해결했네요;;^^

[code:mkdyftfx]
simplism@simplism-desktop:~/바탕화면/conky-1.7.2$ make
Making all in src
make[1]: Entering directory /home/simplism/바탕화면/conky-1.7.2/src' make all-am make[2]: Entering directory /home/simplism/바탕화면/conky-1.7.2/src’
make[2]: Leaving directory /home/simplism/바탕화면/conky-1.7.2/src' make[1]: Leaving directory /home/simplism/바탕화면/conky-1.7.2/src’
Making all in doc
make[1]: Entering directory /home/simplism/바탕화면/conky-1.7.2/doc' make[1]: all’를 위해 할 일이 없습니다
make[1]: Leaving directory /home/simplism/바탕화면/conky-1.7.2/doc' Making all in lua make[1]: Entering directory /home/simplism/바탕화면/conky-1.7.2/lua’
make[1]: all'를 위해 할 일이 없습니다 make[1]: Leaving directory /home/simplism/바탕화면/conky-1.7.2/lua’
Making all in data
make[1]: Entering directory /home/simplism/바탕화면/conky-1.7.2/data' make[1]: all’를 위해 할 일이 없습니다
make[1]: Leaving directory /home/simplism/바탕화면/conky-1.7.2/data' make[1]: Entering directory /home/simplism/바탕화면/conky-1.7.2’
make[1]: all-am'를 위해 할 일이 없습니다 make[1]: Leaving directory /home/simplism/바탕화면/conky-1.7.2’


simplism@simplism-desktop:~/바탕화면/conky-1.7.2$ sudo make install
[sudo] password for simplism:
Making install in src
make[1]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/src'
make  install-am
make[2]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/src'
make[3]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/src'
test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin"
  /bin/bash ../libtool   --mode=install /usr/bin/install -c 'conky' '/usr/local/bin/conky'
libtool: install: /usr/bin/install -c conky /usr/local/bin/conky
make[3]: `install-data-am'를 위해 할 일이 없습니다
make[3]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/src'
make[2]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/src'
make[1]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/src'
Making install in doc
make[1]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/doc'
make[2]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/doc'
make[2]: `install-exec-am'를 위해 할 일이 없습니다
test -z "/usr/local/share/man/man1" || /bin/mkdir -p "/usr/local/share/man/man1"
 /usr/bin/install -c -m 644 'conky.1' '/usr/local/share/man/man1/conky.1'
make[2]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/doc'
make[1]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/doc'
Making install in lua
make[1]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/lua'
make[2]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/lua'
test -z "/usr/local/lib/conky" || /bin/mkdir -p "/usr/local/lib/conky"
make[2]: `install-data-am'를 위해 할 일이 없습니다
make[2]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/lua'
make[1]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/lua'
Making install in data
make[1]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/data'
make[2]: Entering directory `/home/simplism/바탕화면/conky-1.7.2/data'
make[2]: `install-exec-am'를 위해 할 일이 없습니다
test -z "/usr/local/etc/conky" || /bin/mkdir -p "/usr/local/etc/conky"
 /usr/bin/install -c -m 644 'conky.conf' '/usr/local/etc/conky/conky.conf'
 /usr/bin/install -c -m 644 'conky_no_x11.conf' '/usr/local/etc/conky/conky_no_x11.conf'
make[2]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/data'
make[1]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2/data'
make[1]: Entering directory `/home/simplism/바탕화면/conky-1.7.2'
make[2]: Entering directory `/home/simplism/바탕화면/conky-1.7.2'
make[2]: `install-exec-am'를 위해 할 일이 없습니다
make[2]: `install-data-am'를 위해 할 일이 없습니다
make[2]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2'
make[1]: Leaving directory `/home/simplism/바탕화면/conky-1.7.2'[/code:mkdyftfx]

make와 sudo make install을 해주니;;;
에러는 안뜨는데, 메시지 중에서 [color=#FF0000:mkdyftfx]~~를 위해 할 일이 없습니다[/color:mkdyftfx] 라고 나오는 것들은 무엇때문인지 알 수 있나요?;
예전에 유닉스 수업을 들을 때 기억을 더듬어보니… compile을 한 뒤에 다시 컴파일을 할 경우 파일이 변경되지 않은 소스는 컴파일을 하지 않고 링킹만 하는 작업을 하는 것으로 알고 있는데… 혹시 그거 때문인가요(추측중;;?);;

[quote="simplism":qqsuy2n3]에러는 안뜨는데, 메시지 중에서 ~~를 위해 할 일이 없습니다 라고 나오는 것들은 무엇때문인지 알 수 있나요?;[/quote:qqsuy2n3] 할일이 없다는건 make 시에 그쪽과정은 할게 없다 즉 이게 보통 win32 쪽이거나 다른 환경에 필요한 작업은 안하는거죠
make 과정을 좀 더 자세히 보기위해 -d 옵션 디버깅 옵션 주면 자세 하려나 … :?

그리고 지금 사용하는 어플 버전 보다 상위를 사용하기 위한 컴파일은 아래 참고 하십시요. 쉽습니다.

[size=150:qqsuy2n3]패지키업 리빌드 하기[/size:qqsuy2n3]
[list=1:qqsuy2n3]
[:qqsuy2n3] 작업 디렉토리를 만들고 들어간다.[/:m:qqsuy2n3]
[:qqsuy2n3] apt-get source pkgname[/:m:qqsuy2n3]
[:qqsuy2n3] sudo apt-get build-deps pkgname[/:m:qqsuy2n3]
[:qqsuy2n3] 최신 소스를 가져와 푼다.[/:m:qqsuy2n3]
[:qqsuy2n3] apt-get source 로 받은 pkgname의 디렉에서 debian디렉을 최신소스로 복사한다.[/:m:qqsuy2n3]
[:qqsuy2n3] ./debian/changeslog[/:m:qqsuy2n3]
[:qqsuy2n3] ./debian/rules build 로 잘 빌드되는지 확인한다.[/:m:qqsuy2n3]
[:qqsuy2n3] 잘되면 fakeroot ./debian/rules binary 로 패키지를 만든다.[/:m:qqsuy2n3][/list:o:qqsuy2n3]