Portage & Entropy integration, couple of questions

Anything that pertains to Portage

Moderator: Moderators

Portage & Entropy integration, couple of questions

Postby Compizfox » Sun Aug 17, 2014 19:04

Hi all,

I'm new to Sabayon. I just installed it on my laptop and I got everything (including my Optimus setup using Bumblebee) working. However, I'm a bit disappointing about how Portage and Entropy work together (they don't, if I understand it correctly).

I was under the impression that it worked just like the package management in FreeBSD, and that is as follows: if build a package from the Ports (= source tree, ebuild-like) it builds a package and installs it as a binary package in the binary package management. It is a single system and you can mix binary packages with source-built.

In Sabayon this doesn't seem to work however. For example, when I try to emerge Thunderbird, it fails because a dependency is already installed in Entropy (I think):

Code: Select all
* Detected file collision(s):
*
*      /usr/bin/pinentry-curses
*      /usr/share/info/pinentry.info.bz2
*
* Searching all installed packages for file collisions...
*
* Press Ctrl-C to Stop
*
* app-crypt/pinentry-base-0.8.3:0::sabayon-distro
*      /usr/bin/pinentry-curses
*      /usr/share/info/pinentry.info.bz2
*
* Package 'app-crypt/pinentry-0.8.3' NOT merged due to file collisions.
* If necessary, refer to your elog messages for the whole content of the
* above message.


Questions:
- How do I fix this?
- If it isn't possible or impractical to do so, can I use Portage only? How?

(cross-posted from http://www.reddit.com/r/sabayon/comment ... t_portage/ because I didn't get a reply there)
Last edited by Compizfox on Sun Aug 17, 2014 21:35, edited 1 time in total.
Compizfox
Baby Hen
 
Posts: 4
Joined: Sun Aug 17, 2014 19:01

Re: Portage & Entropy integration, couple of questions

Postby Stupot » Sun Aug 17, 2014 19:54

First, a question. Why not install the thunderbird in entropy instead of the one in portage?

Second, they do work together, sort of. But a conflict in portage is almost kind of independent of the fact that you've installed things through entropy.

Using portage isn't just a simple "compile and install this application". It's more like "compile and install this application, but first compile and install and all of these dependencies, but before that make sure none of those installations break anything that is already installed".

Portage has more flexibility when you use it standalone than when you are using entropy, but that's the nature of precompiled applications. A whole precompiled universe of packages can depend on the fact that everything is compiled in such a way that it's compatible. but if you start customizing how some dependencies are compiled, you can break how an already compiled application uses that dependency. Using portage, you can often just recompile all the applications and everybody's happy (although your CPU is tired from all that compiling).

One last thing, entropy knows about portage and keeps portage informed with what it installs. Portage, however, doesn't know or care about entropy, so entropy must be informed that things have installed through portage.

Code: Select all
# equo rescue spmsync --ask


In general though, given the difference of how dependency resolving is (and must be) different between a source package manager and a binary package manager, it is recommended to pick one or the other, mixing as little as possible (and only installing top-most level portage applications, no custom compiling of underlying libraries used by multiple applications).
Stupot
Sagely Hen
 
Posts: 1538
Joined: Wed Feb 14, 2007 3:44
Location: St. Louis, MO, USA

Re: Portage & Entropy integration, couple of questions

Postby Compizfox » Sun Aug 17, 2014 21:25

Stupot wrote:First, a question. Why not install the thunderbird in entropy instead of the one in portage?
That's what I did, eventually, because emerge didn't work.

Why I want to use Portage? Well, that's quite simple. The whole reason I chose Sabayon is because I like the idea of a source-based distro. If have a source-based package manager (--> Portage), and you can compile the packages (and have enough patience to wait for it ;)) why not?

The packages probably end up a little bit faster because they're compiled for your system, and Portage has more packages than Entropy.

Second, they do work together, sort of. But a conflict in portage is almost kind of independent of the fact that you've installed things through entropy.

Using portage isn't just a simple "compile and install this application". It's more like "compile and install this application, but first compile and install and all of these dependencies, but before that make sure none of those installations break anything that is already installed".

Portage has more flexibility when you use it standalone than when you are using entropy, but that's the nature of precompiled applications. A whole precompiled universe of packages can depend on the fact that everything is compiled in such a way that it's compatible. but if you start customizing how some dependencies are compiled, you can break how an already compiled application uses that dependency. Using portage, you can often just recompile all the applications and everybody's happy (although your CPU is tired from all that compiling).

One last thing, entropy knows about portage and keeps portage informed with what it installs. Portage, however, doesn't know or care about entropy, so entropy must be informed that things have installed through portage.

Code: Select all
# equo rescue spmsync --ask


In general though, given the difference of how dependency resolving is (and must be) different between a source package manager and a binary package manager, it is recommended to pick one or the other, mixing as little as possible (and only installing top-most level portage applications, no custom compiling of underlying libraries used by multiple applications).

Well, in that case, assume I'm going to emerge as most packages as possible (instead of using Entropy). How do I solve the file collisions, like the one I got while trying to install Thunderbird? Because that's my main problem.

For the sake of clarity, I get this so called "file collisions" with a lot of packages, not just Thunderbird. For example, this is what I got trying to install LibreOffice:

Code: Select all
 * Messages for package app-text/poppler-0.26.2:

 * This package will overwrite one or more files that may belong to other
 * packages (see list below). You can use a command such as `portageq
 * owners / <filename>` to identify the installed package that owns a
 * file. If portageq reports that only one package owns a file then do
 * NOT file a bug report. A bug report is only useful if it identifies at
 * least two or more packages that are known to install the same file(s).
 * If a collision occurs and you can not explain where the file came from
 * then you should simply ignore the collision since there is not enough
 * information to determine if a real problem exists. Please do NOT file
 * a bug report at http://bugs.gentoo.org unless you report exactly which
 * two packages install the same file(s). See
 * http://wiki.gentoo.org/wiki/Knowledge_Base:Blockers for tips on how to
 * solve the problem. And once again, please do NOT file a bug report
 * unless you have completely understood the above message.
 *
 * Detected file collision(s):
 *
 *      /usr/lib64/libpoppler-cpp.so.0.2.0
 *      /usr/lib64/pkgconfig/poppler-splash.pc
 *      /usr/lib64/pkgconfig/poppler-qt4.pc
 *      /usr/lib64/pkgconfig/poppler.pc
 *      /usr/lib64/pkgconfig/poppler-cpp.pc
 *      /usr/bin/pdftoppm
 *      /usr/bin/pdfdetach
 *      /usr/bin/pdffonts
 *      /usr/bin/pdftohtml
 *      /usr/bin/pdfinfo
 *      /usr/bin/pdfunite
 *      /usr/bin/pdfimages
 *      /usr/bin/pdftotext
 *      /usr/bin/pdftops
 *      /usr/bin/pdfseparate
 *      /usr/include/poppler/Rendition.h
 *      /usr/include/poppler/Movie.h
 *      /usr/include/poppler/PSTokenizer.h
 *      /usr/include/poppler/UnicodeDecompTables.h
 *      /usr/include/poppler/GfxState.h
 *      /usr/include/poppler/Error.h
 *      /usr/include/poppler/OptionalContent.h
 *      /usr/include/poppler/CompactFontTables.h
 *      /usr/include/poppler/Lexer.h
 *      /usr/include/poppler/DateInfo.h
 *      /usr/include/poppler/ViewerPreferences.h
 *      /usr/include/poppler/UnicodeMapTables.h
 *      /usr/include/poppler/PSOutputDev.h
 *      /usr/include/poppler/Sound.h
 *      /usr/include/poppler/XRef.h
 *      /usr/include/poppler/Link.h
 *      /usr/include/poppler/Outline.h
 *      /usr/include/poppler/StdinPDFDocBuilder.h
 *      /usr/include/poppler/StdinCachedFile.h
 *      /usr/include/poppler/PageTransition.h
 *      /usr/include/poppler/UTF.h
 *      /usr/include/poppler/Object.h
 *      /usr/include/poppler/GlobalParams.h
 *      /usr/include/poppler/SplashOutputDev.h
 *      /usr/include/poppler/CachedFile.h
 *      /usr/include/poppler/Stream.h
 *      /usr/include/poppler/FontEncodingTables.h
 *      /usr/include/poppler/poppler-config.h
 *      /usr/include/poppler/NameToCharCode.h
 *      /usr/include/poppler/JArithmeticDecoder.h
 *      /usr/include/poppler/CharCodeToUnicode.h
 *      /usr/include/poppler/UnicodeMap.h
 *      /usr/include/poppler/TextOutputDev.h
 *      /usr/include/poppler/Function.h
 *      /usr/include/poppler/UTF8.h
 *      /usr/include/poppler/XpdfPluginAPI.h
 *      /usr/include/poppler/CMap.h
 *      /usr/include/poppler/ErrorCodes.h
 *      /usr/include/poppler/BuiltinFont.h
 *      /usr/include/poppler/Page.h
 *      /usr/include/poppler/PopplerCache.h
 *      /usr/include/poppler/FontInfo.h
 *      /usr/include/poppler/Dict.h
 *      /usr/include/poppler/UnicodeCompTables.h
 *      /usr/include/poppler/Decrypt.h
 *      /usr/include/poppler/Catalog.h
 *      /usr/include/poppler/NameToUnicodeTable.h
 *      /usr/include/poppler/Annot.h
 *      /usr/include/poppler/UnicodeCClassTables.h
 *      /usr/include/poppler/Linearization.h
 *      /usr/include/poppler/SecurityHandler.h
 *      /usr/include/poppler/CharTypes.h
 *      /usr/include/poppler/OutputDev.h
 *      /usr/include/poppler/PreScanOutputDev.h
 *      /usr/include/poppler/Gfx.h
 *      /usr/include/poppler/PDFDoc.h
 *      /usr/include/poppler/FileSpec.h
 *      /usr/include/poppler/BuiltinFontTables.h
 *      /usr/include/poppler/Stream-CCITT.h
 *      /usr/include/poppler/JBIG2Stream.h
 *      /usr/include/poppler/Array.h
 *      /usr/include/poppler/Parser.h
 *      /usr/include/poppler/UnicodeTypeTable.h
 *      /usr/include/poppler/PDFDocEncoding.h
 *      /usr/include/poppler/Hints.h
 *      /usr/include/poppler/Form.h
 *      /usr/include/poppler/ProfileData.h
 *      /usr/include/poppler/GfxFont.h
 *      /usr/include/poppler/PDFDocBuilder.h
 *      /usr/include/poppler/GfxState_helpers.h
 *      /usr/include/poppler/PDFDocFactory.h
 *      /usr/include/poppler/LocalPDFDocBuilder.h
 *      /usr/include/poppler/goo/TiffWriter.h
 *      /usr/include/poppler/goo/gtypes.h
 *      /usr/include/poppler/goo/GooString.h
 *      /usr/include/poppler/goo/FixedPoint.h
 *      /usr/include/poppler/goo/ImgWriter.h
 *      /usr/include/poppler/goo/gfile.h
 *      /usr/include/poppler/goo/gmem.h
 *      /usr/include/poppler/goo/GooTimer.h
 *      /usr/include/poppler/goo/gstrtod.h
 *      /usr/include/poppler/goo/JpegWriter.h
 *      /usr/include/poppler/goo/grandom.h
 *      /usr/include/poppler/goo/GooMutex.h
 *      /usr/include/poppler/goo/PNGWriter.h
 *      /usr/include/poppler/goo/GooLikely.h
 *      /usr/include/poppler/goo/GooHash.h
 *      /usr/include/poppler/goo/GooList.h
 *      /usr/include/poppler/splash/SplashErrorCodes.h
 *      /usr/include/poppler/splash/SplashT1FontFile.h
 *      /usr/include/poppler/splash/SplashBitmap.h
 *      /usr/include/poppler/splash/SplashT1FontEngine.h
 *      /usr/include/poppler/splash/SplashGlyphBitmap.h
 *      /usr/include/poppler/splash/SplashT1Font.h
 *      /usr/include/poppler/splash/SplashXPath.h
 *      /usr/include/poppler/splash/SplashFTFont.h
 *      /usr/include/poppler/splash/SplashMath.h
 *      /usr/include/poppler/splash/SplashPattern.h
 *      /usr/include/poppler/splash/SplashFontFileID.h
 *      /usr/include/poppler/splash/SplashState.h
 *      /usr/include/poppler/splash/Splash.h
 *      /usr/include/poppler/splash/SplashFTFontFile.h
 *      /usr/include/poppler/splash/SplashFontFile.h
 *      /usr/include/poppler/splash/SplashFont.h
 *      /usr/include/poppler/splash/SplashClip.h
 *      /usr/include/poppler/splash/SplashFontEngine.h
 *      /usr/include/poppler/splash/SplashScreen.h
 *      /usr/include/poppler/splash/SplashTypes.h
 *      /usr/include/poppler/splash/SplashXPathScanner.h
 *      /usr/include/poppler/splash/SplashPath.h
 *      /usr/include/poppler/splash/SplashFTFontEngine.h
 *      /usr/include/poppler/qt4/poppler-annotation.h
 *      /usr/include/poppler/qt4/poppler-form.h
 *      /usr/include/poppler/qt4/poppler-link.h
 *      /usr/include/poppler/qt4/poppler-page-transition.h
 *      /usr/include/poppler/qt4/poppler-optcontent.h
 *      /usr/include/poppler/qt4/poppler-export.h
 *      /usr/include/poppler/qt4/poppler-qt4.h
 *      /usr/include/poppler/qt4/poppler-media.h
 *      /usr/include/poppler/cpp/poppler-image.h
 *      /usr/include/poppler/cpp/poppler-page-renderer.h
 *      /usr/include/poppler/cpp/poppler-rectangle.h
 *      /usr/include/poppler/cpp/poppler-embedded-file.h
 *      /usr/include/poppler/cpp/poppler-page-transition.h
 *      /usr/include/poppler/cpp/poppler-page.h
 *      /usr/include/poppler/cpp/poppler-document.h
 *      /usr/include/poppler/cpp/poppler-font.h
 *      /usr/include/poppler/cpp/poppler-global.h
 *      /usr/include/poppler/cpp/poppler-version.h
 *      /usr/include/poppler/cpp/poppler-toc.h
 *      /usr/include/poppler/fofi/FoFiIdentifier.h
 *      /usr/include/poppler/fofi/FoFiTrueType.h
 *      /usr/include/poppler/fofi/FoFiType1C.h
 *      /usr/include/poppler/fofi/FoFiBase.h
 *      /usr/include/poppler/fofi/FoFiEncodings.h
 *      /usr/include/poppler/fofi/FoFiType1.h
 *      /usr/share/man/man1/pdftops.1.bz2
 *      /usr/share/man/man1/pdftohtml.1.bz2
 *      /usr/share/man/man1/pdffonts.1.bz2
 *      /usr/share/man/man1/pdftotext.1.bz2
 *      /usr/share/man/man1/pdftoppm.1.bz2
 *      /usr/share/man/man1/pdfunite.1.bz2
 *      /usr/share/man/man1/pdfimages.1.bz2
 *      /usr/share/man/man1/pdfseparate.1.bz2
 *      /usr/share/man/man1/pdfdetach.1.bz2
 *      /usr/share/man/man1/pdfinfo.1.bz2
 *      /usr/lib64/libpoppler.so
 *      /usr/lib64/libpoppler-qt4.so
 *      /usr/lib64/libpoppler-qt4.so.4
 *      /usr/lib64/libpoppler-cpp.so.0
 *      /usr/lib64/libpoppler-cpp.so
 *
 * Searching all installed packages for file collisions...
 *
 * Press Ctrl-C to Stop
 *
 * app-text/poppler-qt4-0.24.5:0::sabayon-distro
 *      /usr/lib64/pkgconfig/poppler-qt4.pc
 *
 * app-text/poppler-base-0.24.5:0::sabayon-distro
 *      /usr/bin/pdfdetach
 *      /usr/bin/pdffonts
 *      /usr/bin/pdfimages
 *      /usr/bin/pdfinfo
 *      /usr/bin/pdfseparate
 *      /usr/bin/pdftohtml
 *      /usr/bin/pdftoppm
 *      /usr/bin/pdftops
 *      /usr/bin/pdftotext
 *      /usr/bin/pdfunite
 *      /usr/include/poppler/GfxState.h
 *      /usr/include/poppler/Movie.h
 *      /usr/include/poppler/PSTokenizer.h
 *      /usr/include/poppler/Rendition.h
 *      /usr/include/poppler/UnicodeDecompTables.h
 *      /usr/lib64/libpoppler-cpp.so.0.2.0
 *      /usr/lib64/pkgconfig/poppler-cpp.pc
 *      /usr/lib64/pkgconfig/poppler-splash.pc
 *      /usr/lib64/pkgconfig/poppler.pc
 *
 * Package 'app-text/poppler-0.26.2' NOT merged due to file collisions.
 * If necessary, refer to your elog messages for the whole content of the
 * above message.
Compizfox
Baby Hen
 
Posts: 4
Joined: Sun Aug 17, 2014 19:01

Re: Portage & Entropy integration, couple of questions

Postby Stupot » Mon Aug 18, 2014 2:07

If you wish to use portage, I suggest going this route:

1) Install Sabayon minimal installation. Why? Because if you wish to use portage, as in fully use portage, you're going to want to recompile everything you install to begin with. Having more things installed to start with is only a hinderance and does nothing to help you out. Rather you'll probably get more conflicts.

2) Set your make.conf flags to your liking and to match your system. Simply compiling things without changing any use flags doesn't tailor the binary to your machine.

3) Recompile the world! Well, everything you have installed on your system already. But you can't just go off and do this all willy nilly, you have to make sure you're ready for it and that you're ready to deal with issues that arise. You may want to first emerge system and then emerge world to break things up.

4) Start emerging the things you wish to have installed.

Before doing anything, make sure you've read up on portage: https://wiki.sabayon.org/index.php?titl ... tage_Guide
and https://www.gentoo.org/doc/en/handbook/ ... t=2&chap=1
should help out a lot.
Stupot
Sagely Hen
 
Posts: 1538
Joined: Wed Feb 14, 2007 3:44
Location: St. Louis, MO, USA

Re: Portage & Entropy integration, couple of questions

Postby albfneto » Mon Aug 18, 2014 16:23

In fact, emerge works well in Sabayon...
Portage (emerge) is based on BSD's Ports, but different, it is not identical with Ports.
you do not need to construct manually the package.

For the beginer, entropy is much more easy to use.

for mix portage and entropy, you need some expertise, in order to not broken you system.

at first, edit the file /etc/entropy/client.conf, and in the line "ignore spmdowngrades", change "disable" to "enable" and save the file.

You also need to edit and optimize your /etc/portage/make.conf file. This file give the directions to the GCC compiler.
See in the net examples as "how to edit make.conf" and "save flags for gentoo". Consult the Gentoo's Portage extensive documentation.

See also in the Sabayon Wiki, this article:

https://wiki.sabayon.org/index.php?title=HOWTO:_Safely_mix_Entropy_and_Portage

You message... a Collision:
Collisions, Masks, Blocking Packages etc... taken part of the "normal behaviour" of Portage...

They are protections of your system, they need to be controlled by the user. They are not compiler errors...
Read the messages or Portage. It "talks" with you..

In you case, collisions, you need to remove the collident packages, or control make.conf, or emerge command (with the FEATURES variable) in order to non collident files.

Example, You may (carefully, i dont tested this) try to remove all collisions, controling the FEATURES (in the make.conf) variable in order to remove the "collision-protect" options mantaining the "preserve-libs" option.
ALBERTO FEDERMAN NETO
albfneto
[email protected]
Favorite Distros: Sabayon, Gentoo, Mageia and OpenSUSE
User avatar
albfneto
Sagely Hen
 
Posts: 1706
Joined: Fri Nov 16, 2007 1:15
Location: Ribeirão Preto City, São Paulo State, Brazil

Re: Portage & Entropy integration, couple of questions

Postby Compizfox » Fri Aug 29, 2014 16:09

albfneto wrote:In fact, emerge works well in Sabayon...
Portage (emerge) is based on Ports, but different, it is not Ports.
you do not need to construct the package.
For the begginer, entropy is much more easy to use.
for mix portage and entropy, you need some expertise, in order to not broken you system.

at first, edit the file /etc/entropy/client.conf, and in the line "ignore spmdowngrades", chage "disable" to "enable" and save the file.

You also need to edit and optimize your /etc/portage/make.conf file. This file give the directions to the GCC compiler.
See in the net "how to edit make.conf" and "save flags for gentoo".

See also in the Sabayon Wiki, this article:

https://wiki.sabayon.org/index.php?title=HOWTO:_Safely_mix_Entropy_and_Portage
Thanks, I think I understand that. :)
You message... a Collision: Collisions, Masks, Blocking Packages taken part of the "normal behaviour" of Portage...
They are protections of your system, they need to be controlled by the user. They are not compiler errors...
Read the messages or Portage. It "talks" with you..

In you case, collisions, you need to remove the collident packages, or control make.conf, or emerge command (with the FEATURES option) in order to non collident files.

I know that they're not compiler errors, but I don't have any clue to fix it. The problem is that I can't remove colliding packages without breaking my entire system.

Take the example of Thunderbird: Thunderbird depends on pinentry-base, but Portage fails to emerge pinentry-base because that package is already installed by Entropy. However, Portage doesn't know about that and complains by throwing these collision errors. Now, the problem is that I can't remove pinentry-base in Entropy because many packages (whole kde-base) depend on it. So if I try to equo remove pinentry-base, it wants to remove basically my whole system (all the KDE stuff).

In fact, with more than 50% of all packages I try to emerge I encounter these collision issues. So basically, it is very impractical to use Portage.

You see, I was under the impression that Portage and Entropy work together much better. I think one of these statements is true:
  • I'm doing something wrong. Or I encountered some weird bug.
  • The Sabayon FAQ is slightly misleading:
    Entropy: We have a binary manager that can be used as the one, unique package manager. It functions also with Portage so that you can use them both if you are an experienced user. The Entropy binary packages are ready-built and can be installed immediately without the need to compile anything from the source code.

    [...]
    4. Choice of package managers and repositories.
Compizfox
Baby Hen
 
Posts: 4
Joined: Sun Aug 17, 2014 19:01

Re: Portage & Entropy integration, couple of questions

Postby Compizfox » Fri Aug 29, 2014 16:13

Stupot wrote:If you wish to use portage, I suggest going this route:

1) Install Sabayon minimal installation. Why? Because if you wish to use portage, as in fully use portage, you're going to want to recompile everything you install to begin with. Having more things installed to start with is only a hinderance and does nothing to help you out. Rather you'll probably get more conflicts.

2) Set your make.conf flags to your liking and to match your system. Simply compiling things without changing any use flags doesn't tailor the binary to your machine.

3) Recompile the world! Well, everything you have installed on your system already. But you can't just go off and do this all willy nilly, you have to make sure you're ready for it and that you're ready to deal with issues that arise. You may want to first emerge system and then emerge world to break things up.

4) Start emerging the things you wish to have installed.

Before doing anything, make sure you've read up on portage: https://wiki.sabayon.org/index.php?titl ... tage_Guide
and https://www.gentoo.org/doc/en/handbook/ ... t=2&chap=1
should help out a lot.

Unfortunately, that's not what I want. The reasons I chose Sabayon are:
  • Nice, user friendly system. With that, I mean a complete, usable system right after the install. Distros like Ubuntu and Sabayon have this, Gentoo doesn't. That's why I didn't choose Gentoo. A Sabayon minimal install is basically the same as Gentoo and not what I want.
  • Good KDE support.
  • Source based package manager.
Compizfox
Baby Hen
 
Posts: 4
Joined: Sun Aug 17, 2014 19:01

Re: Portage & Entropy integration, couple of questions

Postby Stupot » Sun Aug 31, 2014 18:18

You want two conflicting things.

You want a prebuilt environment, but then you want to be able to customize and compile things. Well, you can't compile certain things with certain flags without compiling their dependencies in certain ways, which can quickly lead to recompiling pretty much all of your system.

I completely understand wanting something you can actually see when you install, but you will only make resolving emerge conflicts more difficult on yourself. You can certainly go that way if you wish, but not many people use Sabayon in that manner, so if you aren't familiar with portage you probably won't get enough support to do what you want. Fitzcarraldo is probably going to be your best resource.

However, a little google searching shows somebody else has run into this same issue and seems to have it figured out: http://computers.findincity.net/view/63 ... nd-entropy
Stupot
Sagely Hen
 
Posts: 1538
Joined: Wed Feb 14, 2007 3:44
Location: St. Louis, MO, USA


Return to Portage|Emerge Package Managers

Who is online

Users browsing this forum: No registered users and 2 guests

cron