[FZH] #D 我在 #autotools 學到的一個小技巧

Caius 'kaio' Chance me在kaio.net
星期三 五月 19 04:19:14 UTC 2010


在開發 ibus-table 的時候遇到一個小問題,到了 #autotools
上找牛請教;覺得裏面一些信息可能對大家也有用,就得到他的准許貼到郵件列表。

<kaio> hi is it usual that libdir is /usr/lib even for 64-bit sys, if I am
not putting --libdir=/usr/lib64 ?
<apostrophe> kaio: that is perfectly normal
<kaio> apostrophe⚙ so every time I should put --libdir=/usr/lib64 ?
<apostrophe> using /usr/lib64 and /usr/lib32 is something that's up to a
distribution to decide... and through using the --libdir option and changing
certain interesting settings when gcc is compiled
<apostrophe> kaio: in what context?
<kaio> and the problem that another prog which needs a .pc, should take the
responsibility to find in /usr/lib64 ?
<kaio> I have two packages: ibus-table-xingyin, ibus-table
<apostrophe> if pkg-config is compiled with --libdir=/usr/lib64, it will
look in /usr/lib64/pkgconfig instead of /usr/lib/pkgconfig by default
(AFAIK)
<apostrophe> kaio: doesn't redhat's binary package buildsystem automatically
put in --libdir=/usr/lib64 ?
<kaio> I downloaded the tarball of ibus-table and ran make
<apostrophe> kaio: is your hostmask lying? :-p
<kaio> the .pc was then installed to /usr/lib, but when I was trying to
build ibus-table-xingyin, it complained about .pc not found in /usr/lib
<kaio> apostrophe⚙ I built tar manually
<kaio> apostrophe⚙ given your info, I think I might need to have --libdir
set
<apostrophe> kaio: what file could ibus-table not find?
<apostrophe> no, --libdir will not influence pkg-config's searchpath
<kaio> could not find /usr/lib/ibus-table.pc by ibus-table-xingyin
<kaio> sth like that
<apostrophe> please pastebin the error along with the command you used to
get the error...
<kaio> ok, someone told me pkgconfig will search both /usr/lib/pkgconfig and
/usr/lib64/pkgconfig
<kaio> apostrophe⚙ ok I get back then
<apostrophe> thanks :-)
<antrik> lru: the Debian packages may have higher requirements than upstream
glibc though
<antrik> I remember some changelog entries talking about minimal kernel
versions
<apostrophe> kaio: btw, how did you become a fedora contributor?
<kaio> apostrophe⚙ I joined RH before I bacame a Fedora contrib.
<kaio> apostrophe⚙ some people I know in my community UG, they were start
being as packager.
<apostrophe> kaio: what does ``UG'' mean?
<lru> user group?
<apostrophe> ah
<kaio> apostrophe⚙ are you a dev of certain software?
<apostrophe> kaio: I would say I sort-of am, but I haven't really written
any chunk of code myself before ;-)
<kaio> apostrophe⚙ oic
<kaio> apostrophe⚙ I thought who managed how to use autotools, also managed
how to dev.
<kaio> because autotools is too difficult to me
<apostrophe> kaio: oh, I'm not in any way associated with autotools devs;
also, I've done more work trying to fix package's autotools setups than to
write actual software ;-)
<apostrophe> kaio: problem is, I don't understand your problem yet
<apostrophe> kaio: may you show me the code that ibus-table uses to install
ibus-table.pc ?
<kaio> github.com/kaio/ibus-table
<kaio> github.com/kaio/ibus-table-xingyin
<apostrophe> cool
<apostrophe> kaio: does /usr/lib64/pkgconfig/ibus-table.pc exist?
<apostrophe> kaio: also, files like ``missing'' and ``install-sh'' don't
belong in your source-code repository
<kaio> hmm
<kaio> apostrophe⚙ which one you are talking about now? ibus-table or
ibus-table-xingyin?
<kaio> /usr/lib/pkgconfig/ibus-table.pc exist, may be I didnt put
--libdir=/usr/lib64 when I ran make manually
<apostrophe> kaio: ibus-table-xingyin has some extra files in it that are
normally autogenerated
<apostrophe> kaio: do other files exist in /usr/lib/pkgconfig ?
<apostrophe> if ibus-table.pc is the _only_ file in there, it must be the
wrong directory
<kaio> apostrophe⚙ I actually a retard on autotools, I have no idea which
are generated ones which I should remove
<kaio> apostrophe⚙ ibus-table.pc is one of the file created in ibus-table
repo
<kaio> it has the code of ibus-table also
<apostrophe> kaio: only ``missing'' and ``install-sh'' need to be removed
for that repo ;-)
<kaio> apostrophe⚙ thx for info
<apostrophe> kaio: you should _never_ use ``./configure --prefix=/usr; make
install'' on a fedora system; you should always use the package manager for
stuff like that
<kaio> why? even I am just doing dev?
<apostrophe> kaio: even then
<apostrophe> if you want to test it on your system rather than just running
it out of its source directly, you should roll a quick rpm and install that
<kaio> could you tell me reason?
<kaio> pls
<apostrophe> because if you install files into /usr without using RPM,
you'll potentially damage already installed one and clutter your system with
orphaned files
<apostrophe> you may end up never being able to uninstall every bit of your
program when you change what files your package installs or when you
increment library versions
<kaio> apostrophe⚙ okay
<apostrophe> that can both cause trouble on your system in the future and
make it so that your program works on your machine but doesn't work on a
friend's machine
<kaio> hmm
<kaio> apostrophe⚙ you are right, I've just been too lazy XD
<apostrophe> :-p
<apostrophe> what I do is something like this:
``PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${HOME}/lib/pkgconfig" ./configure
--prefix="${HOME}" ; make install -j -l4''
<kaio> apostrophe⚙ sometimes it just take too long is I just want to do some
minor try and error..
<apostrophe> then I add ${HOME}/bin to my PATH environment variable (in I
think ~/.bashrc)
<apostrophe> kaio: I understand, I just offered an alternative which will go
faster in most cases :-)
<kaio> apostrophe⚙ sure sure, thx, I am still digesting your command above
<kaio> apostrophe⚙ so it install to my home dir?
<kaio> very interesting
<apostrophe> yes, I do that on stuff that I'm ``developing'' ;-)
<kaio> will the sys pick up that dir instead?
<apostrophe> the PKG_CONFIG_PATH variable tells pkg-config were to look for
*.pc files
<kaio> its the first time I heard this idea
<kaio> ok I should give it a try again tonight then :)
<kaio> BTW, your info is so valuable, could I forward the log to the mailing
list?
<apostrophe> kaio: if you think my information is valuable in that way,
that's fine with me
<apostrophe> :-)
<kaio> appreciate, catch you later

-- 
Caius 'kaio' Chance / かいお
 [Email/Gtalk] Caius.Chance在gmail.com | [IRC] kaio at chat.freenode.net
 [Twitter] K410 | [Blog] blog.kaio.net | [Fedora]
fedoraproject.org/wiki/User:kaio


关于邮件列表 Chinese 的更多信息