francescomecca.eu/_posts/_site/index.php/archives/198.html

30 lines
1.7 KiB
HTML
Raw Normal View History

2017-03-22 13:07:09 +01:00
<p>In this post I wish to explain a bit about Perl related ebuilds in Gentoo and how to update from perl-core to virtual/perl without conflicts.</p>
<p>First of all the core distribution of Perl is included in <a href="https://packages.gentoo.org/package/dev-lang/perl">dev-lang/Perl</a> along with <a href="http://perldoc.perl.org/index-modules-A.html">modules</a>.</p>
<p>The <a href="https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/perl-core/">perl-core category</a> in portage contains ebuilds for perl modules, some of which are included in the core perl distibution. The perl-core ebuilds overrides the perl-core modules such that you can update them without recompiling dev-lang/Perl.</p>
<p>Each perl-core module has a corrensponding virtual/perl-* package. The virtual category is used by portage when emerging to take into account that a module can be either provided by dev-lang/perl package or found in perl-core category.</p>
<p>So, what to do in case of blocks when upgrading your Gentoo machine?</p>
<p>Perl-cleaner is a package provided to get rid of these blocks and to migrate from perl-core to virtual/perl-*.</p>
<pre class="wp-code-highlight prettyprint linenums:1">emerge perl-cleaner
emerge dev-lang/perl
perl-cleaner --all</pre>
<p>if you still have problems when upgrading @world you add a backtrack option</p>
<pre class="wp-code-highlight prettyprint linenums:1">emerge -uDN --backtrack=30 @world</pre>
<p>or you can unmerge all perl-core packages and then finally upgrade world</p>
<pre class="wp-code-highlight prettyprint linenums:1">emerge --unmerge perl-core/*</pre>
<p>This will remove all perl-core packages that virtual/perl-* packages will bring back if needed.</p>
<p style="text-align: right;">
Francesco Mecca
</p>