Home > Gentoo > Gentoo/Layman/eix -update problems.

Gentoo/Layman/eix -update problems.

`eix` is possibly the most handy tool in the (gentoo) world. Rather than having to use `emerge -s` to search through portage (or any of your overlays), `eix` keeps a database of the contents and returns search results up to 100 times faster than using emerge.

Sadly, it seems that if you add an overlay to gentoo (for example `layman -a jokey`) and then run `eix-update`, it does not include the newly added overylay, even though it re-scans the default portage tree and any other overlays you might have installed. This, is very annoying!

This is also the second time I’ve been hit by this problem, and as I can’t remember how it was fixed the first time1, it seemed like a good idea to mention it here.

So here we go. We are going to use the overlay jokey as it has a copy of Sun’s Virtualbox in it that I’m after, so:

`layman -a jokey`  -this adds the overlay.
`update-eix-layman add` -this is the command we want, to get eix to add the new overlay into its database
`eix –in-overlay jokey` -now shows the contents of the overlay. woop!

 


  1. Actually, I remember bits.
    I remember telling someone to use it over IRC in #gentoo recently (ish), and it turns out my chat log is just over 450MB for that channel, so its taking a little while to grep, especially as I can’t remember what I’m looking for

 

Categories: Gentoo Tags: , , , ,
  1. totedati
    September 20th, 2010 at 23:14 | #1

    yeah … same head scratching problem …. my layman:

    $ layman -l
    * sabayon [Git ] (git://sabayon.org/projects/overlay.git )
    * sunrise [Subversion] (svn://overlays.gentoo.org/proj/sunrise/reviewed/ )

    eix-update -a sunrise
    Reading Portage settings ..
    Building database (/var/cache/eix) ..
    [0] “gentoo” /mnt/entropy/usr/portage/ (cache: metadata-flat)
    Reading category 154|154 (100%) Finished
    [1] “sabayon” /mnt/entropy/usr/local/portage/layman/sabayon (cache: parse#metadata-flat#assign)
    Reading category 154|154 (100%) Finished
    [2] “sunrise” /mnt/entropy/var/lib/layman/sunrise (cache: parse#metadata-flat#assign)
    Reading category 154|154 (100%) Finished
    Applying masks ..
    Calculating hash tables ..
    Writing database file /var/cache/eix ..
    Database contains 15178 packages in 154 categories.

    but after that:

    eix-update
    Reading Portage settings ..
    Building database (/var/cache/eix) ..
    [0] “gentoo” /mnt/entropy/usr/portage/ (cache: metadata-flat)
    Reading category 154|154 (100%) Finished
    [1] “sabayon” /mnt/entropy/usr/local/portage/layman/sabayon (cache: parse#metadata-flat#assign)
    Reading category 154|154 (100%) Finished
    Applying masks ..
    Calculating hash tables ..
    Writing database file /var/cache/eix ..
    Database contains 14469 packages in 154 categories.

    this means eix-update -a sunrise do not make permanent changes … grrrr … eix-layman -a sunrise has no effect … now a real puffy begginer linux user will run around screaming ;-D

    but … hey! lets do it again and this time MAKE OUR EYES EAGLES EYES:

    eix-layman -a sunrise
    Usage: eix-layman [options] command
    Add or remove local layman overlays to the eix database (eix 0.20.6).

    Explanation: If your /etc/make.conf does not source layman/make.conf,
    then the layman overlays are not considered as part of you PORTDIR_OVERLAY;
    in this case, they are are usually not added to your eix database and thus
    cannot be found with eix.
    However, you might want to add/remove them temporarily to your eix database
    without changing your /etc/make.conf. This is the purpose of this script.
    This script is also meant as an example how to use eix-functions.sh.

    The following commands are provided:

    add: Add the local layman overlays to the eix database
    remove: Remove the local layman overlays from the eix database.

    Available options:

    -a OVERLAY Add overlay to the list of layman overlays.
    -A PATH Add PATH to the sourced make.confs used to determine
    the layman overlays. Current value:
    /usr/local/portage/layman/make.conf
    -C Clear the above list
    -c LAYMAN_CFG Use layman.cfg file to determine entry for above list
    -v Verbose (default)
    -q Quiet

    Current value: /usr/local/portage/layman/make.conf … hmmmm … let’s see:

    eix-update -a sunrise

    cat “/usr/local/portage/layman/make.conf”
    PORTDIR_OVERLAY=”
    /usr/local/portage/layman/sabayon
    $PORTDIR_OVERLAY

    ha! one step more:

    cat /var/lib/layman/make.conf
    PORTDIR_OVERLAY=”
    /var/lib/layman/sabayon
    /var/lib/layman/sunrise
    $PORTDIR_OVERLAY

    BINGO! look like layman use “/var/lib/layman/make.conf” but eix read “/usr/local/portage/layman/make.conf” … yeah! smart!

    sudo cp -i /var/lib/layman/make.conf /usr/local/portage/layman/make.conf
    cp: overwrite `/usr/local/portage/layman/make.conf’? y

    eix-update
    Reading Portage settings ..
    Building database (/var/cache/eix) ..
    [0] “gentoo” /mnt/entropy/usr/portage/ (cache: metadata-flat)
    Reading category 154|154 (100%) Finished
    [1] “sabayon” /mnt/entropy/var/lib/layman/sabayon (cache: parse#metadata-flat#assign)
    Reading category 154|154 (100%) Finished
    [2] “sunrise” /mnt/entropy/var/lib/layman/sunrise (cache: parse#metadata-flat#assign)
    Reading category 154|154 (100%) Finished
    Applying masks ..
    Calculating hash tables ..
    Writing database file /var/cache/eix ..
    Database contains 15245 packages in 154 categories.

    problem solved … as an extra investigation:

    cat /etc/make.conf | grep layman
    source /usr/local/portage/layman/make.conf

    “If your /etc/make.conf does not source layman/make.conf” is a confusing statement … layman/make.conf is not a real path!

  2. December 24th, 2010 at 14:58 | #2

    seems to have been all my own sleep deprived fault; having the layman files in a path different to the one in make.conf doesn’t help. Saying that the path changed 3 times in as many version bumps, so…

  1. No trackbacks yet.