View previous topic :: View next topic |
Author |
Message |
deltamalloc Apprentice
Joined: 18 Jan 2013 Posts: 279
|
Posted: Sat Jun 24, 2017 12:32 pm Post subject: Problem with basic masking of packages. |
|
|
I currently have app-emulation/fuse-utils-1.0.0 installed, it is working perfectly fine and I don't want to upgrade. The new version, app-emulation/fuse-utils-1.1.1, also fails to build (for non-important reasons, I don't want to fix it, I want to mask it).
I want to mask app-emulation/fuse-utils-1.1.1, or in other words, prevent anything above fuse-utils-1.0.0 from being pulled in when doing a world emerge.
E.g. when I do:
Code: |
# emerge --update --deep --with-bdeps=y @world
Calculating dependencies... done!
[ebuild U #] app-emulation/fuse-utils-1.1.1 [1.0.0]
|
I don't want that to happen, I want it to just proceed as if there didn't exist a more recent version.
I tried doing that:
I added >app-emulation/fuse-utils-1.0.0 to my /etc/portage/package.mask file. However, portage still wants to pull in fuse-utils-1.1.1:
Code: |
# emerge --update --deep --with-bdeps=y @world
Calculating dependencies... done!
[ebuild U #] app-emulation/fuse-utils-1.1.1 [1.0.0]
The following mask changes are necessary to proceed:
(see "package.unmask" in the portage(5) man page for more details)
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask:
=app-emulation/fuse-utils-1.1.1
NOTE: The --autounmask-keep-masks option will prevent emerge
from creating package.unmask or ** keyword changes.
|
I tried changing it from >app-emulation/fuse-utils-1.0.0 to >=app-emulation/fuse-utils-1.0.0, because strangely enough ">=" (greater than or equal) seems to be used to mean only greater from reading https://wiki.gentoo.org/wiki//etc/portage/package.mask, but the problem remains.
I don't understand what the problem is, my problem is almost verbatim the same except for a different package name, as the first example in the package.mask guide:
Code: |
# Mask beta versions greater than 1.97 of powertop since they have less features
>=sys-power/powertop-1.97
|
If this prevents anything greater than 1.97 of powertop being installed, then why doesnt >=app-emulation/fuse-utils-1.0.0 prevent anything higher than 1.0.0 of fuse-utils from being installed?
Again, this is what happens:
Code: |
# emerge --update --deep --with-bdeps=y @world
Calculating dependencies... done!
[ebuild U #] app-emulation/fuse-utils-1.1.1 [1.0.0]
The following mask changes are necessary to proceed:
(see "package.unmask" in the portage(5) man page for more details)
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask:
=app-emulation/fuse-utils-1.1.1
|
|
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sat Jun 24, 2017 12:40 pm Post subject: |
|
|
deltamalloc,
The mask worked but as a result Code: | The following mask changes are necessary to proceed:
(see "package.unmask" in the portage(5) man page for more details)
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask:
=app-emulation/fuse-utils-1.1.1 | you cannot update @world because something depends on =app-emulation/fuse-utils-1.1.1.
You need to find and mask that something ... and so on.
A mask of Code: | >app-emulation/fuse-utils-1.0.0 | hides all future versions. That's probably a bad idea because you won't see a fixed version.
Mask only the broken version, so that you can see and try fixes.
Try Code: | emerge -uDNtav --with-bdeps=y @world --backtrack=30 |
The -t will show the dependency tree and --backtrack=30 tells portage to try harder to resolve the dependencies. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
deltamalloc Apprentice
Joined: 18 Jan 2013 Posts: 279
|
Posted: Sat Jun 24, 2017 1:09 pm Post subject: |
|
|
NeddySeagoon wrote: | deltamalloc,
The mask worked but as a result Code: | The following mask changes are necessary to proceed:
(see "package.unmask" in the portage(5) man page for more details)
# required by @selected
# required by @world (argument)
# /etc/portage/package.mask:
=app-emulation/fuse-utils-1.1.1 | you cannot update @world because something depends on =app-emulation/fuse-utils-1.1.1.
You need to find and mask that something ... and so on.
A mask of Code: | >app-emulation/fuse-utils-1.0.0 | hides all future versions. That's probably a bad idea because you won't see a fixed version.
Mask only the broken version, so that you can see and try fixes.
Try Code: | emerge -uDNtav --with-bdeps=y @world --backtrack=30 |
The -t will show the dependency tree and --backtrack=30 tells portage to try harder to resolve the dependencies. |
But nothing depends on fuse-utils. equery depends shows nothing. |
|
Back to top |
|
|
saboya Guru
Joined: 28 Nov 2006 Posts: 552 Location: Brazil
|
Posted: Sat Jun 24, 2017 1:14 pm Post subject: |
|
|
There's the issue that 1.1.1 is also the only package in the tree. Maybe that's why dependency resolution insists in the new package. |
|
Back to top |
|
|
Josef.95 Advocate
Joined: 03 Sep 2007 Posts: 4553 Location: Germany
|
Posted: Sat Jun 24, 2017 1:58 pm Post subject: |
|
|
deltamalloc wrote: | But nothing depends on fuse-utils. equery depends shows nothing. |
Nah, see "# required by @selected"
it depends on @world
Code: | emerge -av --depclean app-emulation/fuse-utils | should help.
/edit
Or better, what is the real problem with updating to fuse-utils-1.1.1 version? |
|
Back to top |
|
|
steveL Watchman
Joined: 13 Sep 2006 Posts: 5153 Location: The Peanut Gallery
|
Posted: Sat Jun 24, 2017 3:20 pm Post subject: |
|
|
What Josef said; you have app-emulation/fuse-utils in world, so it's trying to get the latest version; though I agree it should leave it as masked by user-config.
I'd edit /var/lib/portage/world, to make it read: =app-emulation/fuse-utils-1.0.0 for now.
If you're not comfortable editing it directly (it's just a text config), wait for someone else to give the correct sequence using emerge.
Perhaps check bugzilla to see if trying to override user mask, is already being tracked; if not file a bug. Either way, should get some reasoning from zmedico.
I think you want a > than 1.0, or >= 1.1 wrt masking. |
|
Back to top |
|
|
Jaglover Watchman
Joined: 29 May 2005 Posts: 8291 Location: Saint Amant, Acadiana
|
|
Back to top |
|
|
fedeliallalinea Administrator
Joined: 08 Mar 2003 Posts: 30915 Location: here
|
Posted: Sat Jun 24, 2017 3:42 pm Post subject: |
|
|
You can also see what package require fuse-util with --tree option to emerge
Code: | # emerge --update --deep --with-bdeps=y @world --tree |
_________________ Questions are guaranteed in life; Answers aren't. |
|
Back to top |
|
|
josephg l33t
Joined: 10 Jan 2016 Posts: 783 Location: usually offline
|
Posted: Sat Jun 24, 2017 6:29 pm Post subject: |
|
|
deltamalloc, you have app-emulation/fuse-utils in your world, and the only version available is ~1.1.1.
my emerge shows app-emulation/fuse-utils [Masked]. so unless you have changed mask/flags elsewhere, emerge shouldn't even try to install/update. |
|
Back to top |
|
|
josephg l33t
Joined: 10 Jan 2016 Posts: 783 Location: usually offline
|
Posted: Sat Jun 24, 2017 7:51 pm Post subject: |
|
|
also, fuse-utils has libspectrum as dependency, and has only 1.1.1 in portage. did your libspectrum upgrade? |
|
Back to top |
|
|
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Sat Jun 24, 2017 8:20 pm Post subject: |
|
|
steveL wrote: | If you're not comfortable editing it directly (it's just a text config), wait for someone else to give the correct sequence using emerge. |
emerge --noreplace =app-emulation/fuse-utils-1.0.0
However, I think you have to supply the ebuild in a local overlay since the requested ebuild doesn't exist in portage anymore.
Did you remember to do "src /etc/profile" or ". /etc/profile" after updating the mask? |
|
Back to top |
|
|
NeddySeagoon Administrator
Joined: 05 Jul 2003 Posts: 54237 Location: 56N 3W
|
Posted: Sun Jun 25, 2017 9:21 am Post subject: |
|
|
Tony0945,
The ebuild is safely tucked away in portages database. That's needed so that portage can remove packages that are no longer in the tree.
It also means you can fish them out after you should have added them to your overlay. _________________ Regards,
NeddySeagoon
Computer users fall into two groups:-
those that do backups
those that have never had a hard drive fail. |
|
Back to top |
|
|
steveL Watchman
Joined: 13 Sep 2006 Posts: 5153 Location: The Peanut Gallery
|
Posted: Sun Jun 25, 2017 1:06 pm Post subject: |
|
|
Tony0945 wrote: | emerge --noreplace =app-emulation/fuse-utils-1.0.0 | Heh, thanks.
There's another part needed to get rid of the unversioned item, isn't there? (That's why I find it quicker to edit.)
Quote: | However, I think you have to supply the ebuild in a local overlay since the requested ebuild doesn't exist in portage anymore. |
Yes, I think it'll choke on later upgrades without it (though perhsps it should not.)
"source /etc/profile" not src, btw. (though "." is indeed more portable.) |
|
Back to top |
|
|
deltamalloc Apprentice
Joined: 18 Jan 2013 Posts: 279
|
Posted: Sun Jun 25, 2017 2:02 pm Post subject: |
|
|
Josef.95 wrote: | deltamalloc wrote: | But nothing depends on fuse-utils. equery depends shows nothing. |
Nah, see "# required by @selected"
it depends on @world
Code: | emerge -av --depclean app-emulation/fuse-utils | should help.
/edit
Or better, what is the real problem with updating to fuse-utils-1.1.1 version? |
The real reason I don't want to upgrade:
This is actually an exercise in getting package.mask to work for myself, because every time I fiddle with it, there seems to be some reason it doesn't quite do what I thought it should do or be able to do.
It is required by @selected and depends on @world?
That makes no sense. There is nothing preventing me from just removing fuse-utils completely. Nothing would break, no other ebuild in the entire system depends on it.
It is really not possible to tell Portage that I'm happy with whatever version of fuse-utils I have, please just leave it alone and don't try to upgrade it? |
|
Back to top |
|
|
mv Watchman
Joined: 20 Apr 2005 Posts: 6747
|
Posted: Sun Jun 25, 2017 2:11 pm Post subject: |
|
|
deltamalloc wrote: | Nothing would break |
Your world file would break where you explicitly stated that you want this package.
Quote: | It is really not possible to tell Portage that I'm happy with whatever version of fuse-utils I have, please just leave it alone and don't try to upgrade it? |
No, because apparently the version which you have installed is no longer in the gentoo repository. This is a dangerous situation; e.g. the removal might be due to security issues.
If you want to keep an obsolete ebuild, you are supposed to maintain the ebuild in your own overlay. (You can also hack with package.provided, but this is just a hack). |
|
Back to top |
|
|
Tony0945 Watchman
Joined: 25 Jul 2006 Posts: 5127 Location: Illinois, USA
|
Posted: Sun Jun 25, 2017 4:07 pm Post subject: |
|
|
steveL wrote: | "source /etc/profile" not src, btw. (though "." is indeed more portable.) |
Ooops! I always use the dot, but I remembered the installation guide used "source" or "src", apparently "source". |
|
Back to top |
|
|
|