| View previous topic :: View next topic |
| Author |
Message |
node_one Apprentice

Joined: 07 Apr 2008 Posts: 165
|
Posted: Thu Jun 19, 2008 3:45 pm Post subject: Portage 2.2, the new features |
|
|
| Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets. I tried searching, but did not find what I was looking for. I would like to know if/how users can create and manage package sets. Are package sets going to replace meta packages like kde-meta? Also, is portage 2.2 going to be on the 2008.0 media or stage3? |
|
| Back to top |
|
 |
kernelOfTruth Watchman


Joined: 20 Dec 2005 Posts: 5345 Location: Vienna, Austria; Germany; hello world :)
|
Posted: Thu Jun 19, 2008 4:19 pm Post subject: Re: Portage 2.2, the new features |
|
|
| node_one wrote: | | Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets. I tried searching, but did not find what I was looking for. I would like to know if/how users can create and manage package sets. Are package sets going to replace meta packages like kde-meta? Also, is portage 2.2 going to be on the 2008.0 media or stage3? |
google , I haven't found more than that (& am also interested, keep this thread updated, if you find more)
thanks _________________ Unofficial minimal livecd x86/amd64 w/reiser4+truecrypt (by Neo2)
2.6.37.2_plus_v1: BFS, CFS,THP,compaction, zcache or TOI
Hardcore Linux user since 2004  |
|
| Back to top |
|
 |
Thargor Apprentice


Joined: 23 Dec 2005 Posts: 239 Location: Bamberg/Germany
|
Posted: Thu Jun 19, 2008 8:31 pm Post subject: |
|
|
edit: First draft of an upgrade guide by genone: http://dev.gentoo.org/~genone/docs/portage-2.2-upgrade-doc
You should treat my post as a quick overview and read the link above because genone knows portage a lot better than me .
Note that parts of the upgrade doc only apply to the not yet released _rc2
Here are some facts I know:
- No, it's not going to be on 2008.0, as these snapshots were taken a few weeks(/months?) ago and it is still package.masked nowadays.
- Set support. It works like this:
Note that system and world are also sets, but can be used without the @, Just like it was before, Also note, that world no longer includes system by default. Use this to revert to the old behaviour: | Code: | | emerge --noreplace system | If you want system to stay out of world, you have to use -1/--oneshot every time you emerge system.
There is also a set that contains all installed packages. It is called @everything in <=_rc1, but has been renamed and will be @all-installed in >=_rc2
USE DEPENDENCIES[1]! (please paludis folks, stop telling others it will take 6 years for this to get into portage (No offense ment, it's just that I read that a few times in the past)
For the ones which are not into ebuild developing that much: This will kill the anoying 'you have to build foo with useflag bar to emerge this package' messages.
FEATURES="preserve-libs": This is basically revdep-rebuild integrated into portage. It tells you when you have to use it with a message like this: | Code: | !!! existing preserved libs:
>>> package: media-libs/mesa-7.1_rc1
* - /usr/lib64/libGLU.so.1.3
* - /usr/lib64/libGLU.so.1.3.070003 | Then you can use it like this: | Code: | | emerge -1av @preserved-rebuild |
And, another advantage over revdep-rebuild: things keep working, because it keeps the old libraries around until you reemerge things. It still has some issues, like preserving to much libs through. Note that this is on by default
FEATURES="unemerge-orphans": portage Now removes files, even if they have changed since they were installed. edit: It seems this is there since portage-2.1.3
-* in package.keywords: This no longer means that foo will be installed when it has KEYWORDS="-*", but that no keywords are matched (so you can mask things that way) To install things with KEYWORDS="-*", use this:
--keep-going (will be in _rc2): With this option, emerge tries to continue when a package fails, but drops all packages with unsatisfied dependencies.
Example: | Code: | [ebuild N ] app-misc/foo-1
[ebuild N ] app-misc/bar-2
[ebuild N ] app-misc/baz-1.5 | Let's assume bar-2 fails --> foo-1 cannot be emerged, but emerge will install baz-1.5, because none of it's deps failed.
Note that --skipfirst also works that way now (is already in _rc1). So if you use emerge --resume --skipfirst in the case above after it failed (without --keep-going), it will refuse to install foo-1. To restore the old behaviour, use --resume --skipfirst --nodeps
(actually, --keep-going is the result of this new --skipfirst behaviour)
[1] http://bugs.gentoo.org/2272,http://bugs.gentoo.org/174406
That's pretty much everything that comes to my mind right now.
Also check out
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/RELEASE-NOTES?view=markup
and
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/NEWS?view=markup
And, for what will come in the future:
http://sources.gentoo.org/viewcvs.py/portage/main/trunk/TODO?view=markup
EDIT: corrected name of preserve-libs FEATURE and added note about unemerge-orphans being there since 2.1.3
EDIT: added --keep-going, which will be in _rc2 and note about changed --skipfirst, which already is in _rc1
EDIT: added genone's upgrade guide draft and note about the @everything/@all-installed set _________________ Ideas are bulletproof
Last edited by Thargor on Sun Jun 29, 2008 9:19 am; edited 3 times in total |
|
| Back to top |
|
 |
Etal Veteran


Joined: 15 Jul 2005 Posts: 1580
|
Posted: Fri Jun 20, 2008 12:14 am Post subject: |
|
|
Thanks Thargor!  _________________ “And even in authoritarian countries, information networks are helping people discover new facts and making governments more accountable.”– Hillary Clinton, Jan. 21, 2010 |
|
| Back to top |
|
 |
node_one Apprentice

Joined: 07 Apr 2008 Posts: 165
|
Posted: Fri Jun 20, 2008 8:40 pm Post subject: |
|
|
| Thanks from me too. I just noticed that 2.2_rc1 is now showing up as testing (~) so I guess I will be able to try out some of the new features very soon. |
|
| Back to top |
|
 |
i92guboj Moderator


Joined: 30 Nov 2004 Posts: 9313 Location: Córdoba (Spain)
|
Posted: Fri Jun 20, 2008 9:14 pm Post subject: |
|
|
Moved from Gentoo Chat to Portage & Programming. _________________ Gentoo Handbook |
|
| Back to top |
|
 |
tranquilcool Veteran

Joined: 25 Mar 2005 Posts: 1030
|
Posted: Sat Jun 21, 2008 4:00 pm Post subject: |
|
|
/var/lib/portage/world: Validation failed at line: 1444, data kdegraphics-scm*
how can i get over this? _________________ this is a strange strange world. |
|
| Back to top |
|
 |
Thargor Apprentice


Joined: 23 Dec 2005 Posts: 239 Location: Bamberg/Germany
|
Posted: Sun Jun 22, 2008 4:29 pm Post subject: |
|
|
You installed a set from the genkdesvn overlay using paludis, but this set is not recognised/supported by portage.
Either uninstall it using paludis and use portage or stay with paludis, usind both at the same time can lead to problems. _________________ Ideas are bulletproof |
|
| Back to top |
|
 |
Grahammm Tux's lil' helper

Joined: 01 Sep 2004 Posts: 81 Location: Berkshire UK
|
Posted: Sun Jun 22, 2008 4:36 pm Post subject: Re: Portage 2.2, the new features |
|
|
| node_one wrote: | | Is there a place where I can get more information about the new portage 2.2 features, particularly about packages sets? |
file:///usr/share/doc/portage-2.2_rc1/html/index.html |
|
| Back to top |
|
 |
widremann Veteran

Joined: 14 Mar 2005 Posts: 1312
|
Posted: Mon Jun 23, 2008 1:11 am Post subject: |
|
|
| Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever. |
|
| Back to top |
|
 |
spielc Guru

Joined: 20 Apr 2004 Posts: 447
|
Posted: Mon Jun 23, 2008 10:49 am Post subject: |
|
|
| widremann wrote: | | Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever. |
Well the standard location is /etc/portage/sets (this can be changed somehow but i forgot how to do it..) and in this directory you define your sets. Each set is a file which contains package atoms. The name of the set is the name of the file. For example:
/etc/portage/sets/svn
| Code: |
dev-util/subversion
dev-util/rapidsvn
|
now you can emerge this set like this:
|
|
| Back to top |
|
 |
widremann Veteran

Joined: 14 Mar 2005 Posts: 1312
|
Posted: Mon Jun 23, 2008 11:19 am Post subject: |
|
|
| spielc wrote: | | widremann wrote: | | Wow, none of this documentation anywhere tells you how to create a fucking set. That's really great. I am trying to use kdesvn overlay and it says install the sets to the "appropriate location", except that nobody ever tells you where the hell that is. None of these links that have been provided explain how to create your own sets. Perhaps somebody here can explain it since apparently it's so obvious that it need not be documented ever. |
Well the standard location is /etc/portage/sets (this can be changed somehow but i forgot how to do it..) and in this directory you define your sets. Each set is a file which contains package atoms. The name of the set is the name of the file. For example:
/etc/portage/sets/svn
| Code: |
dev-util/subversion
dev-util/rapidsvn
|
now you can emerge this set like this:
|
Thank you very much. That's all I wanted to know . Don't know why it's so hard to document that... |
|
| Back to top |
|
 |
Genone Retired Dev


Joined: 14 Mar 2003 Posts: 8690 Location: beyond the rim
|
Posted: Mon Jun 23, 2008 11:26 am Post subject: |
|
|
| widremann wrote: | Thank you very much. That's all I wanted to know . Don't know why it's so hard to document that... |
Well, it is documented in the sets.cond docs when you know what to look for (description of multi-set config of StaticFileSet), it's just difficult to find when you're not familiar with the backend stuff. I'm planning to add some more user-friendly docs soon though to explain the new stuff a bit better. |
|
| Back to top |
|
 |
Thargor Apprentice


Joined: 23 Dec 2005 Posts: 239 Location: Bamberg/Germany
|
Posted: Mon Jun 23, 2008 11:29 am Post subject: |
|
|
You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. _________________ Ideas are bulletproof |
|
| Back to top |
|
 |
spielc Guru

Joined: 20 Apr 2004 Posts: 447
|
Posted: Mon Jun 23, 2008 1:22 pm Post subject: |
|
|
| Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
ah now that's something really nice and helpful. Thanks for the tip |
|
| Back to top |
|
 |
arnvidr Guru


Joined: 19 Aug 2004 Posts: 441 Location: Oslo, Norway
|
Posted: Mon Jun 23, 2008 7:27 pm Post subject: |
|
|
| spielc wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
ah now that's something really nice and helpful. Thanks for the tip |
Where do you put these lines? _________________
|
|
| Back to top |
|
 |
spielc Guru

Joined: 20 Apr 2004 Posts: 447
|
Posted: Mon Jun 23, 2008 8:20 pm Post subject: |
|
|
| arnvidr wrote: | | spielc wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
ah now that's something really nice and helpful. Thanks for the tip |
Where do you put these lines? |
You can define this things in /etc/portage/sets.conf |
|
| Back to top |
|
 |
arnvidr Guru


Joined: 19 Aug 2004 Posts: 441 Location: Oslo, Norway
|
Posted: Tue Jun 24, 2008 5:58 am Post subject: |
|
|
| spielc wrote: | | arnvidr wrote: | | spielc wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
ah now that's something really nice and helpful. Thanks for the tip |
Where do you put these lines? |
You can define this things in /etc/portage/sets.conf |
Cool, thanks  _________________
|
|
| Back to top |
|
 |
Arfrever Bodhisattva


Joined: 29 Apr 2006 Posts: 2462 Location: Polska / Lenkija
|
Posted: Tue Jun 24, 2008 10:26 am Post subject: |
|
|
| Thargor wrote: | - FEATURES="unemerge-orphans": portage Now removes files, even if they have changed since they were installed
|
This feature has been available since Portage 2.1.3. |
|
| Back to top |
|
 |
Bloodsurfer Guru


Joined: 07 Dec 2005 Posts: 359 Location: Germany (Saarland)
|
Posted: Wed Jun 25, 2008 1:27 pm Post subject: |
|
|
| Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command. _________________ SiberianSniper: my girlfriend's name ends with .c
Clete2: Uber geek! W00t! I'd rather have it end in .cpp... <insert name>.cpp
Dralnu: ...why not <name>.o? Then she's ready for linking...
SiberianSniper: or <name>.ko, so she's ready for insertion? |
|
| Back to top |
|
 |
r0bertz Developer

Joined: 13 Sep 2004 Posts: 257 Location: HKSAR,China
|
Posted: Wed Jun 25, 2008 3:10 pm Post subject: |
|
|
| Thargor wrote: |
FEATURES="preserved-rebuild" |
I think there is a confusion here, or at least a typo,
the FEATURE is called "preserve-libs"
the set is called "preserved-rebuild"
and the "preserve-libs" features is default on, so no need to specify it in make.conf
check /etc/make.globals
| Code: | # Enable for global testing
FEATURES="${FEATURES} preserve-libs"
|
_________________ Zhang Le, Robert
http://zhangle.is-a-geek.org |
|
| Back to top |
|
 |
Thargor Apprentice


Joined: 23 Dec 2005 Posts: 239 Location: Bamberg/Germany
|
Posted: Wed Jun 25, 2008 3:33 pm Post subject: |
|
|
| Bloodsurfer wrote: | | I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command. |
r0bertz: Thanks for the corrections, I knew it was default, so I actually never looked up the name of the FEATURE
I'll edit my previous post.
Arfrever: Didn't know that, I'll add that too _________________ Ideas are bulletproof |
|
| Back to top |
|
 |
arnvidr Guru


Joined: 19 Aug 2004 Posts: 441 Location: Oslo, Norway
|
Posted: Thu Jun 26, 2008 7:33 am Post subject: |
|
|
| Bloodsurfer wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command. |
This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked. _________________
|
|
| Back to top |
|
 |
tranquilcool Veteran

Joined: 25 Mar 2005 Posts: 1030
|
Posted: Thu Jun 26, 2008 7:35 am Post subject: |
|
|
| arnvidr wrote: | | Bloodsurfer wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command. |
This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked. |
can you specify the exact command that worked for you?
thanks. _________________ this is a strange strange world. |
|
| Back to top |
|
 |
arnvidr Guru


Joined: 19 Aug 2004 Posts: 441 Location: Oslo, Norway
|
Posted: Thu Jun 26, 2008 9:32 am Post subject: |
|
|
| tranquilcool wrote: | | arnvidr wrote: | | Bloodsurfer wrote: | | Thargor wrote: | You can do even nicer things: | Code: | [live]
class = portage.sets.shell.CommandOutputSet
command = find /var/db/pkg -type d -iname '*9999*' | sed -e 's#^/var/db/pkg/#=#g' |
This gives you a '@live' set that contains every installed package with 9999 in it's version or name.
There are probably nicer ways of doing that, like querying the vdb through portage for the version, but I don't know how to do that. |
I suggest 'qlist -sIv | grep 9999 | xargs -n1 -i echo ={}', it works much faster as command. |
This didn't work for me in sets.conf. I had to add the C flag to qlist to remove colours, and then it worked. |
can you specify the exact command that worked for you?
thanks. |
| Code: | | qlist -sIvC | grep 9999 | xargs -n1 -i echo ={} |
_________________
|
|
| Back to top |
|
 |
|