1 |
> would indicate easily if any packages in the special list are upgradable |
2 |
> irregardless of whether it is in world, system, whatever. |
3 |
|
4 |
Ok. Kind of mirroring, then. |
5 |
|
6 |
>From where the "current version" identifier for each package comes, |
7 |
then? Will the packages be just downloaded to that central computer |
8 |
and kept up-to-date there? |
9 |
|
10 |
Is "list" specifier needed as there are many lists anyway? I mean, |
11 |
there is no "--list" before world or system. |
12 |
|
13 |
---------------------------------------------------- |
14 |
|
15 |
Actually, it seems to me that "emerge" should be divided into smaller |
16 |
packages so that users could do such things by scripting. |
17 |
|
18 |
For example, if there were utilities, which build different types of |
19 |
lists [system, kde-meta, world] and output them in some standard |
20 |
format, optionally including versions. elist --currently_installed >> |
21 |
world.list && elist kde-meta kdevelop >> packages.list. |
22 |
|
23 |
Then utility, which takes list into stdin and outputs, which items are |
24 |
newer in server. |
25 |
|
26 |
Then utility for different kinds of comparations of lists (mix -- |
27 |
mixes two lists into one; onlyinfirst, newerversioninfirst and so on). |
28 |
|
29 |
Then utility, which is able to emerge all packages, which are |
30 |
contained in a specific list. |
31 |
|
32 |
What i mean -- it should be possible to use more shell scripting in |
33 |
portage. Any competent admin would be able to run "elist |
34 |
--currently_installed >> world.list" on all machines, then mix them in |
35 |
one machine and check for updates (and then download all those updates |
36 |
into local cache, for example). |
37 |
|
38 |
This should be discussed more deeply, but i think that if portage is |
39 |
divided into several smaller tools, it would be simpler to develop and |
40 |
more scalable. In such case, what portage is about -- lists and |
41 |
checking them against each other; emerging everything in given list; |
42 |
unmerging everything in given list; checking for dependancies of a |
43 |
given list. |
44 |
|
45 |
It is not a small work to think out exactly *how* it should be |
46 |
divided, but i think that the results would be worth of it. Currently, |
47 |
imho, the portage code is grown complex enough that making it simpler |
48 |
is more important than giving new features to it -- if it becomes |
49 |
simple and robust, many new features will find their way in by |
50 |
themselves without any work on developer side, i think :) |
51 |
|
52 |
So, if portage would be looked as lists and operations with lists |
53 |
(calculating dependencies of package would be operation with list of |
54 |
that package and list of all - portage tree -, then); building tools |
55 |
[shell commands] for creating those lists and tools for operations |
56 |
with those lists and leaving "emerge" tool just a handy interface to |
57 |
command them would be imho great. |
58 |
|
59 |
So, something like: |
60 |
# create list file of all in world |
61 |
$ elist --currently_installed --options=fullname,installedversion >> world.list |
62 |
# is cmd for create list file of all in portage tree too slow or usable enough? |
63 |
# check if list of all (portage tree) contains anything newer |
64 |
(all.list is symbolic name here for portage tree to get interface |
65 |
ordered) |
66 |
$ ecompare world.list all.list --newer --deep >> update.list |
67 |
# there is another computer, which is not connected to internet, but |
68 |
has some needs, too |
69 |
$ ecompare othercomputerworld.list all.list --newer --deep >> update2.list |
70 |
# mix those lists together |
71 |
$ emix update.list update2.list >> allupdates.list |
72 |
# download updates |
73 |
$ efetch allupdates.list --where /var/portageupdates |
74 |
# copy all updates mentioned in update.list to CD image |
75 |
.... |
76 |
# update [build and install] all packages, using /var/portageupdates |
77 |
as source of tar files |
78 |
.... |
79 |
|
80 |
-- |
81 |
tvali |
82 |
|
83 |
>From a programmer's point of view, the user is a peripheral that types |
84 |
when you issue a read request. -P. Williams |
85 |
|
86 |
If you think your management doesn't know what it's doing or that your |
87 |
organisation turns out low-quality software crap that embarrasses you, |
88 |
then leave. -Ed Yourdon |
89 |
|
90 |
We all agree on the necessity of compromise. We just can't agree on |
91 |
when it's necessary to compromise. -Larry Wall |
92 |
|
93 |
[ http://www.softwarequotes.com/ ] - |
94 |
http://www.softwarequotes.com/ShowQuotes.asp?ID=544&Name=Borenstein,_Nathaniel_S. |
95 |
- http://www.softwarequotes.com/ShowQuotes.asp?ID=571&Name=Boehm,_Barry |
96 |
|
97 |
-- |
98 |
gentoo-portage-dev@g.o mailing list |