Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I made mistake and changed perl non-threaded version to threaded by unmerge first, change USE flags to include ithreads and emerge perl again. Now most packages depending on perl are broken. How do I rebuild them?

share|improve this question

2 Answers 2

up vote 5 down vote accepted

On way is to use equery's depends function to get the list of things that depend on a package.

# equery depends perl

If you want to rebuild all of them, try something like:

# emerge -a --oneshot `equery depends perl|awk '{print " ="$1}'`

You'll have issues with that if you have packages installed that were removed from the portage tree, so a sync and world update beforehand is a good idea.

For this specific case, you might also want to look at app-admin/perl-cleaner - it has specific features to rebuild perl modules.

share|improve this answer

Try using revdep-rebuild (from app-portage/gentoolkit package, same as equery). It is a tool that scans the system for broken dependencies (like missing shared libraries) and rebuilds the packages that have broken dependencies. An advantage of this compared to Mat's method is that in most cases you don't need to rebuild all packages that depend upon some other one.

share|improve this answer
1  
revdep-rebuild is first thing I tried, but it can't handle this case because library (libperl.so) is present but missing some symbols. –  AlexD Oct 7 '11 at 6:56
1  
Hmm, strange - I thought it already handled USE dependency information correctly. Anyway, since it is a problem with perl, there is a special tool for such job: app-admin/perl-cleaner. –  rozcietrzewiacz Oct 7 '11 at 7:10
    
I've tried perl-cleaner --all but it didn't rebuild vim which is linked against libperl.so. –  AlexD Oct 7 '11 at 8:15
1  
If vim is still broken after that, you should file a bug report. –  rozcietrzewiacz Oct 7 '11 at 8:39
    
But make sure it really is - vim depends on perl only if it is built with perl useflag! (That is also a reason why Mat's method could force far too many rebuilds.) –  rozcietrzewiacz Oct 7 '11 at 8:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.