/[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.34 Revision 1.35
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.34 2004/08/28 11:30:43 swift Exp $ --> 7<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-portage.xml,v 1.35 2004/08/29 10:56:31 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>
757<subsection> 757<subsection>
758<title>ARCH or not?</title> 758<title>ARCH or not?</title>
759<body> 759<body>
760 760
761<p> 761<p>
762Gentoo places its packages in two possible stadia called <e>ARCH</e> and 762When a Gentoo developer puts an ebuild online it informs Portage how to treat
763<e>~ARCH</e>. Don't take this literally: the stadia depend on the architecture 763the package depending on the architecture and stability of the software title.
764you are using. In other words, for x86-based systems you have <e>x86</e> and 764He does so by defining a variable called <c>KEYWORDS</c> inside the ebuild.
765<e>~x86</e>, for ppc-based systems you have <e>ppc</e> and <e>~ppc</e> etc. 765This variable contains one or more architectures and marks them with a special
766</p> 766flag. An explanation of the available flags is given in the next table.
767
768<p> 767</p>
769The <e>~ARCH</e> stadium means that the package works for the developer in 768
770charge of the package, but that the package hasn't been tested thoroughly enough 769<table>
771by the community to be placed in <e>ARCH</e>. <e>~ARCH</e> packages usually go 770<tr>
772to <e>ARCH</e> after being bugfree for a sufficient amount of time. 771 <th>Flag</th>
772 <th>Description</th>
773</tr>
774<tr>
775 <ti>ARCH</ti>
776 <ti>Known to work well on the given architecture</ti>
777</tr>
778<tr>
779 <ti>~ARCH</ti>
780 <ti>
781 Probably works well but needs some further testing on the given
782 architecture
783 </ti>
784</tr>
785<tr>
786 <ti>-ARCH</ti>
787 <ti>Known not to work on the given architecture</ti>
788</tr>
789<tr>
790 <ti>-*</ti>
791 <ti>Known not to work or being extremely dangerous on any architecture</ti>
792</tr>
793</table>
794
773</p> 795<p>
796Let's take a look at an example:
797</p>
798
799<pre caption="Example KEYWORDS setting">
800KEYWORDS="x86 -sparc ~alpha ~ppc"
801</pre>
802
803<p>
804This example can be read as follows:
805</p>
806
807<ul>
808 <li>
809 The ebuild works well on the x86 architecture
810 </li>
811 <li>
812 The ebuild doesn't work on the sparc architecture
813 </li>
814 <li>
815 The ebuild probably works on the alpha architecture but needs more testing
816 </li>
817 <li>
818 The ebuild probably works on the ppc architecture but needs more testing
819 </li>
820 <li>
821 The ebuild might work on the other architectures but hasn't been tried yet
822 </li>
823</ul>
774 824
775<p> 825<p>
776Your system will use <e>ARCH</e> packages per default. If you want to live on 826Your system will use <e>ARCH</e> packages per default. If you want to live on
777the edge, don't mind having a broken package once in a while, know how to deal 827the edge, don't mind having a broken package once in a while, know how to deal
778with a broken system and you like submitting bugreports to <uri 828with a broken system and you like submitting bugreports to <uri
817 <li>The package isn't available for your ARCH entirely</li> 867 <li>The package isn't available for your ARCH entirely</li>
818 <li>The package is masked by your profile</li> 868 <li>The package is masked by your profile</li>
819</ol> 869</ol>
820 870
821<p> 871<p>
872Portage will inform you why a certain package cannot be installed:
873</p>
874
875<ul>
876 <li>
877 <b>~arch keyword</b>: the package is known to work on the given architecture
878 but requires more testing while your system requires that a package is
879 known to work well
880 </li>
881 <li>
882 <b>-arch keyword</b>: the package is known not to work on the given
883 architecture
884 </li>
885 <li>
886 <b>-* keyword</b>: the package is known not to work on any architecture
887 </li>
888 <li>
889 <b>package.mask</b>: the package is listed in the <path>package.mask</path>
890 file, meaning that it breaks something, crashes your system, has severe
891 security issues or worse
892 </li>
893 <li>
894 <b>profile</b>: the package is not available for your profile
895 </li>
896</ul>
897
898<p>
822If the package is masked because of the first reason, and you <e>really</e> 899If the package is masked because of <b>~arch keyword</b>, and you <e>really</e>
823want to install it (knowing that there <e>is</e> a reason why it isn't 900want to install it (knowing that there <e>is</e> a reason why it isn't
824available in <e>ARCH</e>), you can accept the <e>~ARCH</e> version of any 901available in <e>ARCH</e>), you can accept the <e>~ARCH</e> version of any
825package by adding it to your <path>/etc/portage/package.keywords</path> file: 902package by adding it to your <path>/etc/portage/package.keywords</path> file:
826</p> 903</p>
827 904
832# <i>echo "app-office/gnumeric ~x86" &gt;&gt; /etc/portage/package.keywords</i> 909# <i>echo "app-office/gnumeric ~x86" &gt;&gt; /etc/portage/package.keywords</i>
833# <i>emerge gnumeric</i> 910# <i>emerge gnumeric</i>
834</pre> 911</pre>
835 912
836<p> 913<p>
837A package is hardmasked if it is listed in 914Similarly, if you want to install a package marked <b>-arch keyword</b> or <b>-*
915keyword</b> regardless of all the warnings we might put in front of you, edit
916<path>/etc/portage/package.keywords</path> and add the package with the required
917keyword:
918</p>
919
920<pre caption="Accepting the -arch or -* version of a package">
921<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment>
922# <i>mkdir /etc/portage</i>
923
924# <i>echo "app-office/gnumeric -x86" &gt;&gt; /etc/portage/package.keywords</i>
925<comment>(or)</comment>
926# <i>echo "app-office/gnumeric -*" &gt;&gt; /etc/portage/package.keywords</i>
927# <i>emerge gnumeric</i>
928</pre>
929
930<p>
931If you only want to allow the merging of such a package for a specific version
932or version range, you can use the "&lt;, &lt;=, =, &gt;= or &gt;" operands:
933</p>
934
935<pre caption="Accepting a specific ~arch-marked version of a package">
936# <i>echo "=app-office/gnumeric-2.0 ~x86" &gt;&gt; /etc/portage/package.keywords</i>
937</pre>
938
939<p>
940A package is masked due to <b>package.mask</b> if it is listed in
838<path>/usr/portage/profiles/package.mask</path>. If you read this file, you 941<path>/usr/portage/profiles/package.mask</path>. If you read this file, you
839will also read the reason why the package is hardmasked (it is usually added as 942will also read the reason why the package is hardmasked (it is usually added as
840a comment). If you want to install the package nevertheless (despite all the 943a comment). If you want to install the package nevertheless (despite all the
841possible warnings we could ever throw at your head about "breaking your system", 944possible warnings we could ever throw at your head about "breaking your system",
842"breaks other packages", or "badly needs testing"), create the 945"breaks other packages", or "badly needs testing"), create the
861case when newer versions of an application don't support something you require 964case when newer versions of an application don't support something you require
862or when these versions break something else in your environment. 965or when these versions break something else in your environment.
863</p> 966</p>
864 967
865<p> 968<p>
866To hard-mask a package, create <path>/etc/portage/package.mask</path> and list the 969To hard-mask a package, create <path>/etc/portage/package.mask</path> and list
867package in it (use the same format as mentioned above). 970the package in it (use the same format as mentioned above).
868</p> 971</p>
869 972
870<pre caption="Hard-masking a package"> 973<pre caption="Hard-masking a package">
871<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment> 974<comment>(Create the /etc/portage directory if it doesn't exist yet)</comment>
872# <i>mkdir /etc/portage</i> 975# <i>mkdir /etc/portage</i>
873 976
874# <i>echo "&gt;app-office/gnumeric-1.2.10" &gt;&gt; /etc/portage/package.mask</i> 977# <i>echo "&gt;app-office/gnumeric-1.2.10" &gt;&gt; /etc/portage/package.mask</i>
875</pre> 978</pre>
876 979
980<p>
981When Portage tells you that it cannot install a package due to <b>profile</b> it
982means that you are working with a certain profile that doesn't allow the package
983to be installed. But what is this "profile"?
984</p>
985
986<p>
987A profile contains a list of package names and a set of default configuration
988options to be used by Portage. Those files tell Portage which packages
989and which specific versions of those packages to allow, disallow, or
990treat as required. Users can switch profiles by changing a single symlink
991(<path>/etc/make.profile</path>).
992</p>
993
994<p>
995You cannot override a package that is blocked due to <b>profile</b>; if you
996really want to use it, switch to the required profile.
997</p>
998
999<p>
1000You will find more information in our <uri
1001link="/proj/en/releng/docs/cascading-profiles.xml">Cascading Profiles
1002Document</uri>.
1003</p>
1004
877</body> 1005</body>
878</subsection> 1006</subsection>
879<subsection> 1007<subsection>
880<title>Blocked Packages</title> 1008<title>Blocked Packages</title>
881<body> 1009<body>

Legend:
Removed from v.1.34  
changed lines
  Added in v.1.35

  ViewVC Help
Powered by ViewVC 1.1.20