1 |
On Fri, 01 May 2009 02:32:22 +0300 |
2 |
Nikos Chantziaras <realnc@×××××.de> wrote: |
3 |
|
4 |
> A compiled package might look for |
5 |
> it's datafiles in /usr/share. If you compile it with --prefix=/usr and |
6 |
> then move it to /usr/local, the program will obviously not work. |
7 |
> |
8 |
|
9 |
Most GNU software, but then again by no means all, adheres to the |
10 |
standard configure/make method using autoconf and automake. In configure, |
11 |
there are a whole slew of options that can be used to control the |
12 |
install: prefix, bindir, sbindir, datadir, sysconfdir, etc. Usually, |
13 |
by setting prefix, however, the rest will automatically follow. |
14 |
|
15 |
But a lot of programmers make their own rules and this is where |
16 |
life becomes difficult. This is why Gentoo has to be so complex |
17 |
with an ebuild for every package. I suppose that automake and |
18 |
autoconf are diificult to learn (I certainly don't know them) but |
19 |
what is needed are universal packaging standards that every programmer |
20 |
will follow. If we had these standards, a package manager like |
21 |
portage could be made much simpler. |
22 |
|
23 |
|
24 |
On Fri, 01 May 2009 02:24:07 +0200 |
25 |
Branko Badrljica <brankob@××××××××××.com> wrote: |
26 |
|
27 |
> |
28 |
> Question that comes to my mind is why isn't this implemented in portage |
29 |
> as it is as it's very useful tool. |
30 |
> |
31 |
> With it, one could take a disk from machine with hopelessly broken |
32 |
> system, connect it to good machine and reemerge broken packages, for |
33 |
> example. Or, say, emerge packages on fast machine and install them to |
34 |
> slow machine etc etc. |
35 |
> |
36 |
|
37 |
I believe that this can be done already. Just mount the disk from |
38 |
the other machine on, for example, /mnt/other-machine. Then define |
39 |
the ROOT variable before the emerge: |
40 |
|
41 |
ROOT="/mnt/other-machine" emerge --nodeps package |
42 |
|
43 |
The other machine would have to be the same type as the host system, |
44 |
unless you wanted to create a temporary make.conf file with all |
45 |
the other variables like USE and CFLAGS set for the other machine. |
46 |
|
47 |
But what puzzles me is why the Gentoo developers decided to place |
48 |
the standard configure variables, such as prefix, bindir, sbindir, |
49 |
datadir, sysconfdir, etc., outside of the users immediate control. |
50 |
In my opinion (and others will certainly disagree) it represents |
51 |
a great loss of utility to keep everything under /usr. The designers |
52 |
of autoconf and automake, that is the standard GNU build system, created |
53 |
a great level of flexibility that is now lost with portage. There may |
54 |
be workarounds, but these workarounds are not simple. |
55 |
|
56 |
I am not knocking Gentoo; I think it's a great system and I intend |
57 |
to stay with it for a long time. But this omission I feel is |
58 |
quite serious. |
59 |
|
60 |
Frank Peters |