/[gentoo]/xml/htdocs/doc/en/handbook/hb-working-portage.xml
Gentoo

Diff of /xml/htdocs/doc/en/handbook/hb-working-portage.xml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.22 Revision 1.31
2<!DOCTYPE sections SYSTEM "/dtd/book.dtd"> 2<!DOCTYPE sections SYSTEM "/dtd/book.dtd">
3 3
4<!-- The content of this document is licensed under the CC-BY-SA license --> 4<!-- The content of this document is licensed under the CC-BY-SA license -->
5<!-- See http://creativecommons.org/licenses/by-sa/1.0 --> 5<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
6 6
7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-portage.xml,v 1.22 2004/02/03 20:25:45 swift Exp $ --> 7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-portage.xml,v 1.31 2004/08/04 07:01:58 swift Exp $ -->
8 8
9<sections> 9<sections>
10<section> 10<section>
11<title>Obtaining Package Information</title> 11<title>Obtaining Package Information</title>
12<subsection> 12<subsection>
118Manifest metadata.xml openoffice-1.1.0-r1.ebuild openoffice-1.1.0.ebuild 118Manifest metadata.xml openoffice-1.1.0-r1.ebuild openoffice-1.1.0.ebuild
119</pre> 119</pre>
120 120
121<p> 121<p>
122Remember that we told you that a Gentoo package is called an ebuild? Well, in 122Remember that we told you that a Gentoo package is called an ebuild? Well, in
123the example directory four of such ebuilds are stored. Their naming is 123the example directory, four of such ebuilds are stored. Their naming is
124almost identical: they only differ in the version name. 124almost identical; they only differ in the version name.
125You are free to view the contents of such a package: they are plain scripts. We 125You are free to view the contents of such a package: they are plain scripts. We
126will not discuss it right now as it isn't important to know if you plan on just 126will not discuss it right now as it isn't important to know if you plan on just
127using Gentoo. 127using Gentoo.
128</p> 128</p>
129 129
135such as the responsible development group -- called <e>herd</e> -- and a more 135such as the responsible development group -- called <e>herd</e> -- and a more
136extensive description). 136extensive description).
137</p> 137</p>
138 138
139<p> 139<p>
140Inside the <path>files</path> directory you will find extra files, needed by 140Inside the <path>files</path> directory, you will find extra files, needed by
141Portage: digests (checksums and permissions of the files needed by a single 141Portage: digests (checksums and permissions of the files needed by a single
142version of the package), patches, example configuration files, etc. 142version of the package), patches, example configuration files, etc.
143</p> 143</p>
144 144
145<pre caption="Viewing the extra files"> 145<pre caption="Viewing the extra files">
153nptl.patch 153nptl.patch
154</pre> 154</pre>
155 155
156<p> 156<p>
157If you go back to the root of the Portage tree (<path>/usr/portage</path>) you 157If you go back to the root of the Portage tree (<path>/usr/portage</path>) you
158will notice that there are other, non-category directories too. We will discuss 158will notice that there are other, non-category directories, too. We will discuss
159those later in this chapter. 159those later in this chapter.
160</p> 160</p>
161 161
162</body> 162</body>
163</subsection> 163</subsection>
236</p> 236</p>
237 237
238<!-- 238<!--
239<note> 239<note>
240Searching the Portage Tree, especially when using <c>- -searchdesc</c>, is very 240Searching the Portage Tree, especially when using <c>- -searchdesc</c>, is very
241time consuming. There are other, more performant tools available. We will 241time consuming. There are other, best performing tools available. We will
242describe those in the chapter on <uri link="?part=2&amp;chap=7">Gentoolkit and 242describe those in the chapter on <uri link="?part=2&amp;chap=7">Gentoolkit and
243Other Tools</uri>. 243Other Tools</uri>.
244</note> 244</note>
245--> 245-->
246 246
550<p> 550<p>
551For instance, if you want Portage to pretend that none of the dependencies of a 551For instance, if you want Portage to pretend that none of the dependencies of a
552package are installed, you can use <c>--emptytree</c> (<c>-e</c> in short). This 552package are installed, you can use <c>--emptytree</c> (<c>-e</c> in short). This
553is useful with <c>--pretend</c> to display a complete tree of dependencies for 553is useful with <c>--pretend</c> to display a complete tree of dependencies for
554any particular package. Without <c>--pretend</c>, <c>emerge</c> will (re)compile 554any particular package. Without <c>--pretend</c>, <c>emerge</c> will (re)compile
555all listed packages. However, <c>glibc</c> will <e>not</e> be listed as 555all listed packages.
556dependency for safety reasons.
557</p> 556</p>
558 557
559<pre caption="Show all dependencies of gnumeric"> 558<pre caption="Show all dependencies of gnumeric">
560# <i>emerge --emptytree --pretend gnumeric</i> 559# <i>emerge --emptytree --pretend gnumeric</i>
561</pre> 560</pre>
645 <li> 644 <li>
646 <e>N</e> (new) The package is new to your system and will be emerged for the 645 <e>N</e> (new) The package is new to your system and will be emerged for the
647 first time 646 first time
648 </li> 647 </li>
649 <li> 648 <li>
650 <e>R</e> (reemerge) The package isn't new, but needs to be reemerged 649 <e>R</e> (replace) The package isn't new, but needs to be reemerged
651 </li> 650 </li>
652 <li> 651 <li>
653 <e>F</e> (fetch) The package requires that you download the source code 652 <e>F</e> (fetch) The package requires that you download the source code
654 manually (for instance due to licencing issues) 653 manually (for instance due to licencing issues)
655 </li> 654 </li>
668 removed. 667 removed.
669 </li> 668 </li>
670</ul> 669</ul>
671 670
672<p> 671<p>
673In certain cases, an update may mean a downgrade (i.e. install an older version 672We have mentioned that the <e>world</e> file doesn't contain dependencies. When
674instead of a newer version). If you don't want this to happen, use the 673you run <c>emerge --update world</c> only the packages mentioned in the
675<c>--upgradeonly</c> option (<c>-U</c> in short): 674<e>world</e> file and it's immediate dependencies are checked and, if necessary,
675upgraded. If you want <c>emerge</c> to check <e>all</e> the dependencies
676(including the dependencies of the dependencies), add the <c>--deep</c> flag:
676</p> 677</p>
677 678
678<pre caption="Upgrading your entire system"> 679<pre caption="Upgrading your entire system, including all dependencies">
679# <i>emerge --update --upgradeonly world</i> 680# <i>emerge --update --deep world</i>
680</pre> 681</pre>
681 682
682<p> 683<p>
683Of course, we are talking here about <e>system</e> and <e>world</e>, but you can 684Of course, we are talking here about <e>system</e> and <e>world</e>, but you can
684perform the same actions for individual software packages. 685perform the same actions for individual software packages.
740 741
741</body> 742</body>
742</subsection> 743</subsection>
743</section> 744</section>
744<section> 745<section>
745<title>Software Availability</title> 746<title>Working with Masked Packages</title>
746<subsection> 747<subsection>
747<title>ARCH or not?</title> 748<title>ARCH or not?</title>
748<body> 749<body>
749 750
750<p> 751<p>
804 <li>The package is in <e>~ARCH</e> while you use <e>ARCH</e></li> 805 <li>The package is in <e>~ARCH</e> while you use <e>ARCH</e></li>
805 <li>The package is hard-masked explicitly</li> 806 <li>The package is hard-masked explicitly</li>
806</ol> 807</ol>
807 808
808<p> 809<p>
809If the package is masked because of the first reason, and you <e>really</e> want 810If the package is masked because of the first reason, and you <e>really</e>
810to install it (knowing that there <e>is</e> a reason why it isn't available in 811want to install it (knowing that there <e>is</e> a reason why it isn't
811<e>ARCH</e>), you can temporarily accept <e>~ARCH</e> packages: 812available in <e>ARCH</e>), you can accept the <e>~ARCH</e> version of any
813package by adding it to your <path>/etc/portage/package.keywords</path> file:
812</p> 814</p>
813 815
814<pre caption="Temporarily accepting ~ARCH packages"> 816<pre caption="Accepting the ~ARCH version of a package">
815# <i>ACCEPT_KEYWORDS="~x86" emerge gnumeric</i> 817<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment>
818# <i>mkdir /etc/portage</i>
819
820# <i>echo "app-office/gnumeric ~x86" &gt;&gt; /etc/portage/package.keywords</i>
821# <i>emerge gnumeric</i>
816</pre> 822</pre>
817 823
818<p> 824<p>
819A package is hardmasked if it is listed in 825A package is hardmasked if it is listed in
820<path>/usr/portage/profiles/package.mask</path>. If you read this file, you 826<path>/usr/portage/profiles/package.mask</path>. If you read this file, you
824"breaks other packages", or "badly needs testing"), create the 830"breaks other packages", or "badly needs testing"), create the
825<path>/etc/portage/package.unmask</path> file and list the package in it (use 831<path>/etc/portage/package.unmask</path> file and list the package in it (use
826the same format as is used in <path>/usr/portage/profiles/package.mask</path>). 832the same format as is used in <path>/usr/portage/profiles/package.mask</path>).
827</p> 833</p>
828 834
835<pre caption="Unmasking a hard-masked application">
836<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment>
837# <i>mkdir /etc/portage</i>
838
839# <i>echo "=app-office/gnumeric-1.2.12" &gt;&gt; /etc/portage/package.unmask</i>
840</pre>
841
829<p> 842<p>
830Do <e>not</e> alter the <path>/usr/portage/profiles/package.mask</path> file as 843Do <e>not</e> alter the <path>/usr/portage/profiles/package.mask</path> file as
831all changes are undone the next time you update your Portage tree. If you want 844all changes are undone the next time you update your Portage tree.
845</p>
846
847<p>
848Sometimes you might want to hardmask a (collection of) package(s). This is the
849case when newer versions of an application don't support something you require
850or when these versions break something else in your environment.
851</p>
852
853<p>
832to hardmask a package create <path>/etc/portage/package.mask</path> and list the 854To hard-mask a package, create <path>/etc/portage/package.mask</path> and list the
833package in it (use the same format as mentioned above). 855package in it (use the same format as mentioned above).
834</p> 856</p>
835 857
836<!-- 858<pre caption="Hard-masking a package">
837<p> 859<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment>
838Another trick to circumvent the "masked package" problem is to install the 860# <i>mkdir /etc/portage</i>
839package using the full path. This will ignore both the <c>ACCEPT_KEYWORD</c> 861
840settings and the <path>package.mask</path> listing. 862# <i>echo "&gt;app-office/gnumeric-1.2.10" &gt;&gt; /etc/portage/package.mask</i>
841</p> 863</pre>
842
843<pre caption="Installing a package without checking for stadium / masking">
844# <i>emerge /usr/portage/app-office/gnumeric/gnumeric-1.2.0.ebuild</i>
845</pre>
846-->
847 864
848</body> 865</body>
849</subsection> 866</subsection>
850<subsection> 867<subsection>
851<title>Blocked Packages</title> 868<title>Blocked Packages</title>

Legend:
Removed from v.1.22  
changed lines
  Added in v.1.31

  ViewVC Help
Powered by ViewVC 1.1.20