FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo User

 
 
LinkBack Thread Tools
 
Old 08-30-2008, 04:10 AM
Stroller
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

Hi there,

I recently got bitten by the libexpat.so.0 error - for me I
discovered this some considerable months after everyone else on the
list, not because I don't update often (perhaps once or twice every
few weeks) but, I think, because my machines are servers and I don't
have that many packages installed.


During the LONG process of resolving this I discovered the command
`eix -Iu` and that running this with the --only-names flag would give
me a text list of all the files on the system which aren't at the
latest version.


First question: is 'emerge -1 `eix -Iu --only-names`' a useful
command for updating packages not in the world file? Or is this usage
of mine to be avoided? It just seems more effective than `emerge -D
world` - that seems to miss many packages.


I am aware that the above command may update packages I don't
actually need on the system, however it is less arduous to remove
(`emerge -C`) those afterwards, having checked what depends upon them
& stuff. I would rather have some unneeded packages on my system than
some obsolete ones which will cause problems in the future.



So today I ran 'emerge -1 `eix -Iu --only-names`' in order to test
the "new" elog -> email functionality - I had read mention of this in
the past, but the discussion of it in the "idea on updates" thread
made me think to try it. BTW: there is no /usr/share/portage/config/
make.conf.example on my system - it is at /etc/make.conf.example
instead. Is this a problem?



Anyway, I was reminded today that a side-effect of this command is
that it (re)emerges the latest version of any package for which there
is also an older slotted-version on the system. So it here it keeps
updating Python.


$ eix -I python$
[u] dev-lang/python
Available versions:
(2.4) 2.4.4-r5 2.4.4-r6 2.4.4-r14
(2.5) 2.5.2-r6 ~2.5.2-r7
{+cxx +threads berkdb bootstrap build doc elibc_uclibc
examples gdbm ipv6 ncurses nocxx nothreads readline sqlite ssl tk
ucs2 wininst}
Installed versions: 2.4.4-r9(2.4)(20:32:42 05/04/08)(berkdb
examples gdbm ncurses readline ssl -bootstrap -build -doc -
elibc_uclibc -ipv6 -nocxx -nothreads -tk -ucs2)
2.5.2-r6(2.5)(03:46:36 08/30/08)(berkdb
doc examples gdbm ncurses readline ssl threads -bootstrap -build -
elibc_uclibc -ipv6 -sqlite -tk -ucs2 -wininst)

Homepage: http://www.python.org/
Description: Python is an interpreted, interactive,
object-oriented programming language.


$ sudo python-updater
Password:
* Starting Python Updater from 2.4 to 2.5 :
* No packages needs to be remerged.
$

So second question is, can python-2.4.4-r9 be safely removed from the
system?


I don't tend to keep up with best practices in Gentoo, so any
criticism or advice would be much appreciated.


Stroller.
 
Old 08-30-2008, 12:56 PM
Alan McKinnon
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Saturday 30 August 2008 06:10:27 Stroller wrote:
> First question: is 'emerge -1 `eix -Iu --only-names`' a useful *
> command for updating packages not in the world file? Or is this usage *
> of mine to be avoided? It just seems more effective than `emerge -D *
> world` - that seems to miss many packages.

The main reason these packages are behind at all is that they are usually
build dependencies, not run dependencies. They will only be updated with
emerge -uD when something that depends on them is rebuilt.

To avoid this, use 'emerge --with-bdeps y'
This has the side effect of knowing what to do with SLOTs

In general I find that emerge is infinitely better at knowing how to get what
I want than I am, so it's always best to let it do what it wants to do
--
alan dot mckinnon at gmail dot com
 
Old 08-30-2008, 02:59 PM
Stroller
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On 30 Aug 2008, at 13:56, Alan McKinnon wrote:

The main reason these packages are behind at all is that they are
usually
build dependencies, not run dependencies. They will only be updated
with

emerge -uD when something that depends on them is rebuilt.

To avoid this, use 'emerge --with-bdeps y'
This has the side effect of knowing what to do with SLOTs


So a periodic 'emerge --with-bdeps world' would be worthwhile?

In general I find that emerge is infinitely better at knowing how
to get what

I want than I am, so it's always best to let it do what it wants to do


I'd really debate this premise. Perhaps the problem is not with
`emerge` itself, perhaps with the ebuilds or with simple versioning
incompatibilities, but the number of cock-ups one sees with emerged
packages... well, I think "infinitely" good is stretching it just a
little.


I'm not saying Portage is poor - other package managers have given me
more headaches per usage. Maybe the problem is with build-time
dependencies of the build-time dependencies, I don't know, but when I
had the libexpat.so.0 error the only thing that worked (having
followed a number of different advices posted here) was to rebuild
EVERY outdated package on my system - a total numbering in the region
of 250. I wouldn't have imagined I had so many packages installed,
never mind those "missed" by my regular updates.


Stroller.
 
Old 08-30-2008, 07:37 PM
Neil Bothwick
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Sat, 30 Aug 2008 05:10:27 +0100, Stroller wrote:

> It just seems more effective than `emerge -D
> world` - that seems to miss many packages.

The packages is misses are either build-time dependencies, so don't need
updating, or are not dependencies of anything in world and would be
removed by emerge --depclean.

I'm with Alan on this, use with-bdep and trust portage, it knows far more
about the inner workings of your package tree (which it created) than do
you.


--
Neil Bothwick

WITLAG: The delay between delivery and comprehension of a joke.
 
Old 08-30-2008, 08:15 PM
Alan McKinnon
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Saturday 30 August 2008 16:59:02 Stroller wrote:
> On 30 Aug 2008, at 13:56, Alan McKinnon wrote:
> > The main reason these packages are behind at all is that they are
> > usually
> > build dependencies, not run dependencies. They will only be updated
> > with
> > emerge -uD when something that depends on them is rebuilt.
> >
> > To avoid this, use 'emerge --with-bdeps y'
> > This has the side effect of knowing what to do with SLOTs
>
> So a periodic 'emerge --with-bdeps world' would be worthwhile?

Or you could just leave it as is, these apps are only used when you build
something, and if the ebuild requires them, they will be updated.

You can set --with-bdeps to always be used in make.conf - I was sure it was a
FEATURE as some point in the past but a quick check of the man page reveals
nothing. There is an option though to always pass specific options to emerge

> > In general I find that emerge is infinitely better at knowing how
> > to get what
> > I want than I am, so it's always best to let it do what it wants to do
>
> I'd really debate this premise. Perhaps the problem is not with
> `emerge` itself, perhaps with the ebuilds or with simple versioning
> incompatibilities, but the number of cock-ups one sees with emerged
> packages... well, I think "infinitely" good is stretching it just a
> little.
>
> I'm not saying Portage is poor - other package managers have given me
> more headaches per usage. Maybe the problem is with build-time
> dependencies of the build-time dependencies, I don't know, but when I
> had the libexpat.so.0 error the only thing that worked (having
> followed a number of different advices posted here) was to rebuild
> EVERY outdated package on my system - a total numbering in the region
> of 250. I wouldn't have imagined I had so many packages installed,
> never mind those "missed" by my regular updates.

Perhaps I should explain in context. Portage and emerge are not perfect, no
software is, but I have found with experience that trying to be clever with
emerges is usually not worth the effort. I'm not saying you are doing that,
I'm more thinking of worrying about whether some obscure build tool really
should be at the latest version or not. To my mind, that really is a "who
cares?" type question. You should treat my remark for what it really is - a
throw-away comment :-)

Having said that, portage is very good at dealing with the data it is given.
It can work out what to update and when some conflict arises, it does a fine
job of telling the human running the show so that said human can make a sane
decision. (There is nothing we can do about daft ebuilds though). Compare
portage to rpm/yum/urpmi etc ... no, let's rather not go there! apt/dpkg is
pretty good too, but can't deal with orphaned deps (the things that --depclean
fixes), although aptitude deals with those just fine. I've had rpm break many
a system, never seen apt or aptitude do it, and neither has portage. I on the
other hand, have done a great many very stupid things over the years. Funny
thing is, each time it involved me ignoring the friendly output emerge had
just given me.
--
alan dot mckinnon at gmail dot com
 
Old 08-30-2008, 08:19 PM
Alan McKinnon
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Saturday 30 August 2008 16:59:02 Stroller wrote:
> but when I *
> had the libexpat.so.0 error the only thing that worked (having *
> followed a number of different advices posted here) was to rebuild *
> EVERY outdated package on my system - a total numbering in the region *
> of 250. I wouldn't have imagined I had so many packages installed, *
> never mind those "missed" by my regular updates.

Missed this bit in my earlier reply :-)

That number of packages sounds about right, given the amount of time that has
passed since the original expat update, and the amount of changes in the tree
since. It was a huge disruption because so many apps use expat. Lucky for us,
such things are actually quite rare.

In retrospect, it would probably have been quicker if you went the long way
round:

emerge -e world

--
alan dot mckinnon at gmail dot com
 
Old 08-31-2008, 05:11 AM
Stroller
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On 30 Aug 2008, at 21:19, Alan McKinnon wrote:

...
In retrospect, it would probably have been quicker if you went the
long way

round:

emerge -e world


Tried it. Kept dying and leaving a number of packages that I just
couldn't build.


Stroller.
 
Old 08-31-2008, 08:04 AM
Mick
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Saturday 30 August 2008, Neil Bothwick wrote:
> On Sat, 30 Aug 2008 05:10:27 +0100, Stroller wrote:
> > It just seems more effective than `emerge -D
> > world` - that seems to miss many packages.
>
> The packages is misses are either build-time dependencies, so don't need
> updating, or are not dependencies of anything in world and would be
> removed by emerge --depclean.
>
> I'm with Alan on this, use with-bdep and trust portage, it knows far more
> about the inner workings of your package tree (which it created) than do
> you.

When I tried I got:

$ eix -Iu --only-names
app-arch/lzma-utils
dev-libs/libsigc++
media-plugins/gst-plugins-x
media-plugins/gst-plugins-xvideo
sys-apps/hdparm
sys-kernel/gentoo-sources
virtual/perl-Test-Harness

However, when I run emerge -upDv --with-deps y world I get just one package:

# emerge -upDv --with-bdeps y world

These are the packages that would be merged, in order:

Calculating world dependencies |
... done!
[ebuild U ] app-arch/lzma-utils-4.32.6 [4.32.5] USE="-nocxx%" 468 kB

Total: 1 package (1 upgrade), Size of downloads: 468 kB

Where's the others gone?
--
Regards,
Mick
 
Old 08-31-2008, 08:05 AM
David Sveningsson
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

Stroller skrev:
>
> On 30 Aug 2008, at 21:19, Alan McKinnon wrote:
>> ...
>> In retrospect, it would probably have been quicker if you went the
>> long way
>> round:
>>
>> emerge -e world
>
> Tried it. Kept dying and leaving a number of packages that I just
> couldn't build.
>
> Stroller.
>
>
>

You can resume building by using "emerge --resume". If a package fails
to build you can skip it with "emerge --resume --skipfirst".

--


//*David Sveningsson [eXt]*

Freelance coder | Game Development Student
http://sidvind.com

Thou shalt make thy program's purpose and structure clear to thy fellow
man by using the One True Brace Style, even if thou likest it not, for
thy creativity is better used in solving problems than in creating
beautiful new impediments to understanding.
 
Old 08-31-2008, 08:40 AM
Neil Bothwick
 
Default emerge -1 `eix -Iu --only-names` & removing old version of Python

On Sun, 31 Aug 2008 09:04:03 +0100, Mick wrote:

> $ eix -Iu --only-names
> app-arch/lzma-utils
> dev-libs/libsigc++
> media-plugins/gst-plugins-x
> media-plugins/gst-plugins-xvideo
> sys-apps/hdparm
> sys-kernel/gentoo-sources
> virtual/perl-Test-Harness
>
> However, when I run emerge -upDv --with-deps y world I get just one
> package:

> Where's the others gone?

Probably old dependencies that are no longer needed? Did you run
emerge --depclean -p?

--
Neil Bothwick

Every time I jump on the bandwagon all its wheels fall off.
 

Thread Tools




All times are GMT. The time now is 07:25 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org