|
|
1 | <?xml version='1.0' encoding='UTF-8'?> |
|
|
2 | <!DOCTYPE sections SYSTEM "/dtd/book.dtd"> |
|
|
3 | |
| 1 | <!-- 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 --> |
| 2 | <!-- See http://creativecommons.org/licenses/by-sa/1.0 --> |
5 | <!-- See http://creativecommons.org/licenses/by-sa/2.5 --> |
| 3 | |
6 | |
| 4 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-use.xml,v 1.5 2003/12/16 18:08:56 swift Exp $ --> |
7 | <!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-use.xml,v 1.50 2010/06/07 09:20:00 nightmorph Exp $ --> |
| 5 | |
8 | |
| 6 | <sections> |
9 | <sections> |
|
|
10 | |
|
|
11 | <abstract> |
|
|
12 | USE flags are a very important aspect of Gentoo. In this chapter, you learn to |
|
|
13 | work with USE flags and understand how USE flags interact with your system. |
|
|
14 | </abstract> |
|
|
15 | |
|
|
16 | <version>1.39</version> |
|
|
17 | <date>2010-06-07</date> |
|
|
18 | |
| 7 | <section> |
19 | <section> |
| 8 | <title>What are USE-flags?</title> |
20 | <title>What are USE flags?</title> |
| 9 | <subsection> |
21 | <subsection> |
| 10 | <title>The ideas behind USE-flags</title> |
22 | <title>The ideas behind USE flags</title> |
| 11 | <body> |
23 | <body> |
| 12 | |
24 | |
| 13 | <p> |
25 | <p> |
| 14 | When you are installing Gentoo (or any other distribution, or even operating |
26 | When you are installing Gentoo (or any other distribution, or even operating |
| 15 | system for that matter) you make choices depending on the environment you are |
27 | system for that matter) you make choices depending on the environment you are |
| … | |
… | |
| 20 | <p> |
32 | <p> |
| 21 | This is not only true for choosing what packages you want to install, but also |
33 | This is not only true for choosing what packages you want to install, but also |
| 22 | what features a certain package should support. If you don't need OpenGL, why |
34 | what features a certain package should support. If you don't need OpenGL, why |
| 23 | would you bother installing OpenGL and build OpenGL support in most of your |
35 | would you bother installing OpenGL and build OpenGL support in most of your |
| 24 | packages? If you don't want to use KDE, why would you bother compiling packages |
36 | packages? If you don't want to use KDE, why would you bother compiling packages |
| 25 | with KDE-support if those packages work flawlessly without? |
37 | with KDE support if those packages work flawlessly without? |
| 26 | </p> |
38 | </p> |
| 27 | |
39 | |
| 28 | <p> |
40 | <p> |
| 29 | To help users in deciding what to install/activate and what not, we wanted the |
41 | To help users in deciding what to install/activate and what not, we wanted the |
| 30 | user to specify his environment in an easy way. This forces the user into |
42 | user to specify his/her environment in an easy way. This forces the user into |
| 31 | deciding what he really wants and eases the process for Portage, our package |
43 | deciding what they really want and eases the process for Portage, our package |
| 32 | managment system, to make useful decisions. |
44 | management system, to make useful decisions. |
| 33 | </p> |
45 | </p> |
| 34 | |
46 | |
| 35 | </body> |
47 | </body> |
| 36 | </subsection> |
|
|
| 37 | <subsection> |
48 | </subsection> |
|
|
49 | <subsection> |
| 38 | <title>Definition of a USE-flag</title> |
50 | <title>Definition of a USE flag</title> |
| 39 | <body> |
51 | <body> |
| 40 | |
52 | |
| 41 | <p> |
53 | <p> |
| 42 | Enter the USE-flags. Such a flag is a keyword that embodies support and |
54 | Enter the USE flags. Such a flag is a keyword that embodies support and |
| 43 | dependency-information for a certain concept. If you define a certain USE-flag, |
55 | dependency-information for a certain concept. If you define a certain USE flag, |
| 44 | Portage will know that you want support for the chosen keyword. Of course |
56 | Portage will know that you want support for the chosen keyword. Of course |
| 45 | this also alters the dependency information for a package. |
57 | this also alters the dependency information for a package. |
| 46 | </p> |
58 | </p> |
| 47 | |
59 | |
| 48 | <p> |
60 | <p> |
| 49 | Lets take a look at a specific example: the <c>kde</c> keyword. If you do not |
61 | Let us take a look at a specific example: the <c>kde</c> keyword. If you do not |
| 50 | have this keyword in your <c>USE</c> variable, all packages that have |
62 | have this keyword in your <c>USE</c> variable, all packages that have |
| 51 | <e>optional</e> KDE support will be compiled <e>without</e> KDE support. All |
63 | <e>optional</e> KDE support will be compiled <e>without</e> KDE support. All |
| 52 | packages that have an <e>optional</e> KDE dependency will be installed |
64 | packages that have an <e>optional</e> KDE dependency will be installed |
| 53 | <e>without</e> installing the KDE libraries (as dependency). If you have defined |
65 | <e>without</e> installing the KDE libraries (as dependency). If you have defined |
| 54 | the <c>kde</c> keyword, then those packages <e>will</e> be compiled with KDE |
66 | the <c>kde</c> keyword, then those packages <e>will</e> be compiled with KDE |
| … | |
… | |
| 61 | </p> |
73 | </p> |
| 62 | |
74 | |
| 63 | </body> |
75 | </body> |
| 64 | </subsection> |
76 | </subsection> |
| 65 | <subsection> |
77 | <subsection> |
| 66 | <title>What USE-flags exist?</title> |
78 | <title>What USE flags exist?</title> |
| 67 | <body> |
79 | <body> |
| 68 | |
80 | |
| 69 | <p> |
81 | <p> |
| 70 | There are two types of USE-flags: <e>global</e> and <e>local</e> USE-flags. |
82 | There are two types of USE flags: <e>global</e> and <e>local</e> USE flags. |
| 71 | </p> |
83 | </p> |
| 72 | |
84 | |
| 73 | <ul> |
85 | <ul> |
| 74 | <li> |
86 | <li> |
| 75 | A <e>global</e> USE-flag is used by several packages, system-wide. This is |
87 | A <e>global</e> USE flag is used by several packages, system-wide. This is |
| 76 | what most people see as USE-flags. |
88 | what most people see as USE flags. |
| 77 | </li> |
|
|
| 78 | <li> |
89 | </li> |
|
|
90 | <li> |
| 79 | A <e>local</e> USE-fag is used by a single package to make package-specific |
91 | A <e>local</e> USE flag is used by a single package to make package-specific |
| 80 | decisions. |
92 | decisions. |
| 81 | </li> |
93 | </li> |
| 82 | </ul> |
94 | </ul> |
| 83 | |
95 | |
| 84 | <p> |
96 | <p> |
| 85 | A list of available global USE-flags can be found <uri |
97 | A list of available global USE flags can be found <uri |
| 86 | link="/dyn/use-index.xml">online</uri> or locally in |
98 | link="/dyn/use-index.xml">online</uri> or locally in |
| 87 | <path>/usr/portage/profiles/use.desc</path>. A short (<e>very</e> incomplete) |
99 | <path>/usr/portage/profiles/use.desc</path>. |
| 88 | snippet: |
100 | </p> |
|
|
101 | |
| 89 | </p> |
102 | <p> |
| 90 | |
103 | A list of available local USE flags can be found locally in |
| 91 | <pre caption="A short snippet of available USE-flags"> |
104 | <path>/usr/portage/profiles/use.local.desc</path>. |
| 92 | gtk - Adds support for x11-libs/gtk+ (The GIMP Toolkit) |
|
|
| 93 | gtk2 - Use gtk+-2.0.0 over gtk+-1.2 in cases where a program supports both. |
|
|
| 94 | gtkhtml - Adds support for gnome-extra/gtkhtml |
|
|
| 95 | guile - Adds support for dev-util/guile (interpreter for Scheme) |
|
|
| 96 | icc - Use the Intel C++ Compiler if the package supports it |
|
|
| 97 | icc-pgo - Enable PGO data generation or use when use icc. |
|
|
| 98 | imap - Adds support for IMAP |
|
|
| 99 | </pre> |
105 | </p> |
| 100 | |
106 | |
| 101 | </body> |
107 | </body> |
| 102 | </subsection> |
108 | </subsection> |
| 103 | </section> |
109 | </section> |
| 104 | <section> |
110 | <section> |
| 105 | <title>Using USE-flags</title> |
111 | <title>Using USE flags</title> |
| 106 | <subsection> |
112 | <subsection> |
| 107 | <title>Declare permanent USE-flags</title> |
113 | <title>Declare permanent USE flags</title> |
| 108 | <body> |
114 | <body> |
| 109 | |
115 | |
| 110 | <p> |
116 | <p> |
| 111 | In the hope you are convinced of the importance of USE-flags we will now inform |
117 | In the hope you are convinced of the importance of USE flags we will now inform |
| 112 | you how to declare USE-flags. |
118 | you how to declare USE flags. |
| 113 | </p> |
|
|
| 114 | |
|
|
| 115 | <p> |
119 | </p> |
|
|
120 | |
|
|
121 | <p> |
| 116 | As previously mentioned, all USE-flags are declared inside the <c>USE</c> |
122 | As previously mentioned, all USE flags are declared inside the <c>USE</c> |
| 117 | variable. To make it easy for users to search and pick USE-flags, we already |
123 | variable. To make it easy for users to search and pick USE flags, we already |
| 118 | provide a <e>default</e> USE setting. This setting is a collection of USE-flags |
124 | provide a <e>default</e> USE setting. This setting is a collection of USE flags |
| 119 | we think are commonly used by the Gentoo users. This default setting is declared |
125 | we think are commonly used by the Gentoo users. This default setting is declared |
| 120 | in the <path>/etc/make.profile/make.defaults</path> file. Let us take a look at |
126 | in the <path>make.defaults</path> files part of your profile. |
| 121 | this default setting: |
127 | </p> |
|
|
128 | |
| 122 | </p> |
129 | <p> |
|
|
130 | The profile your system listens to is pointed to by the |
|
|
131 | <path>/etc/make.profile</path> symlink. Each profile works on top of another, |
|
|
132 | larger profile, the end result is therefore the sum of all profiles. The top |
|
|
133 | profile is the <path>base</path> profile |
|
|
134 | (<path>/usr/portage/profiles/base</path>). |
|
|
135 | </p> |
| 123 | |
136 | |
| 124 | <pre caption="/etc/make.profile/make.defaults USE variable"> |
137 | <p> |
| 125 | USE="x86 oss apm arts avi berkdb crypt cups encode foomaticdb gdbm gif gpm gtk |
138 | Let us take a look at this default setting for the 10.0 profile: |
| 126 | imlib jpeg kde gnome libg++ libwww mad mikmod motif mpeg ncurses nls |
139 | </p> |
| 127 | oggvorbis opengl pam pdflib png python qt quicktime readline sdl slang |
140 | |
| 128 | spell ssl svga tcpd truetype X xml2 xmms xv zlib" |
141 | <pre caption="Cumulative make.defaults USE variable for the 10.0 profile"> |
|
|
142 | <comment>(This example is the sum of the settings in base, default/linux, |
|
|
143 | default/linux/x86 and default/linux/x86/10.0/)</comment> |
|
|
144 | USE="a52 aac acpi alsa branding cairo cdr dbus dts dvd dvdr emboss encode exif |
|
|
145 | fam firefox flac gif gpm gtk hal jpeg lcms ldap libnotify mad mikmod mng mp3 |
|
|
146 | mp4 mpeg ogg opengl pango pdf png ppds qt3support qt4 sdl spell |
|
|
147 | startup-notification svg tiff truetype vorbis unicode usb X xcb x264 xml |
|
|
148 | xulrunner xv xvid" |
| 129 | </pre> |
149 | </pre> |
| 130 | |
150 | |
| 131 | <p> |
151 | <p> |
| 132 | As you can see, this variable already contains quite a lot of keywords. Do |
152 | As you can see, this variable already contains quite a lot of keywords. Do |
| 133 | <b>not</b> alter the <path>/etc/make.profile/make.defaults</path> file to tailor |
153 | <b>not</b> alter any <path>make.defaults</path> file to tailor |
| 134 | the <c>USE</c> variable to your needs: changes in this file will be undone when |
154 | the <c>USE</c> variable to your needs: changes in this file will be undone when |
| 135 | you update Portage! |
155 | you update Portage! |
| 136 | </p> |
156 | </p> |
| 137 | |
157 | |
| 138 | <p> |
158 | <p> |
| 139 | To change this default setting, you need to add or remove keywords to the |
159 | To change this default setting, you need to add or remove keywords to the |
| 140 | <c>USE</c> variable. This is done globally by defining the <c>USE</c> variable |
160 | <c>USE</c> variable. This is done globally by defining the <c>USE</c> variable |
| 141 | in <path>/etc/make.conf</path>. In this variable you add the extra USE-flags you |
161 | in <path>/etc/make.conf</path>. In this variable you add the extra USE flags you |
| 142 | require, or remove the USE-flags you don't want. This latter is done by |
162 | require, or remove the USE flags you don't want. This latter is done by |
| 143 | prefixing the keyword with the minus-sign ("-"). |
163 | prefixing the keyword with the minus-sign ("-"). |
| 144 | </p> |
164 | </p> |
| 145 | |
165 | |
| 146 | <p> |
166 | <p> |
| 147 | For instance, to remove support for KDE and QT but add support for ldap, the |
167 | For instance, to remove support for KDE and QT but add support for ldap, the |
| 148 | following <c>USE</c> can be defined in <path>/etc/make.conf</path>: |
168 | following <c>USE</c> can be defined in <path>/etc/make.conf</path>: |
| 149 | </p> |
169 | </p> |
| 150 | |
170 | |
| 151 | <pre caption="An example USE setting in /etc/make.conf"> |
171 | <pre caption="An example USE setting in /etc/make.conf"> |
| 152 | USE="-kde -qt ldap" |
172 | USE="-kde -qt4 ldap" |
| 153 | </pre> |
173 | </pre> |
| 154 | |
174 | |
| 155 | </body> |
175 | </body> |
| 156 | </subsection> |
|
|
| 157 | <subsection> |
176 | </subsection> |
|
|
177 | <subsection> |
|
|
178 | <title>Declaring USE flags for individual packages</title> |
|
|
179 | <body> |
|
|
180 | |
|
|
181 | <p> |
|
|
182 | Sometimes you want to declare a certain USE flag for one (or a couple) of |
|
|
183 | applications but not system-wide. To accomplish this, you will need to create |
|
|
184 | the <path>/etc/portage</path> directory (if it doesn't exist yet) and edit |
|
|
185 | <path>/etc/portage/package.use</path>. This is usually a single file, but can |
|
|
186 | also be a directory; see <c>man portage</c> for more information. The following |
|
|
187 | examples assume <path>package.use</path> is a single file. |
|
|
188 | </p> |
|
|
189 | |
|
|
190 | <p> |
|
|
191 | For instance, if you don't want <c>berkdb</c> support globally but you do want |
|
|
192 | it for <c>mysql</c>, you would add: |
|
|
193 | </p> |
|
|
194 | |
|
|
195 | <pre caption="/etc/portage/package.use example"> |
|
|
196 | dev-db/mysql berkdb |
|
|
197 | </pre> |
|
|
198 | |
|
|
199 | <p> |
|
|
200 | You can of course also explicitly <e>disable</e> USE flags for a certain |
|
|
201 | application. For instance, if you don't want <c>java</c> support in PHP: |
|
|
202 | </p> |
|
|
203 | |
|
|
204 | <pre caption="/etc/portage/package.use 2nd example"> |
|
|
205 | dev-php/php -java |
|
|
206 | </pre> |
|
|
207 | |
|
|
208 | </body> |
|
|
209 | </subsection> |
|
|
210 | <subsection> |
| 158 | <title>Declare temporary USE-flags</title> |
211 | <title>Declare temporary USE flags</title> |
| 159 | <body> |
212 | <body> |
| 160 | |
213 | |
| 161 | <p> |
214 | <p> |
| 162 | Sometimes you want to set a certain USE-setting only once. Instead of editing |
215 | Sometimes you want to set a certain USE setting only once. Instead of editing |
| 163 | <path>/etc/make.conf</path> twice (to do and undo the USE-changes) you can just |
216 | <path>/etc/make.conf</path> twice (to do and undo the USE changes) you can just |
| 164 | declare the USE-variable as environment variable. |
217 | declare the USE variable as environment variable. Remember that, when you |
| 165 | </p> |
218 | re-emerge or update this application (either explicitly or as part of a system |
| 166 | |
219 | update) your changes will be lost! |
| 167 | <p> |
220 | </p> |
|
|
221 | |
|
|
222 | <p> |
| 168 | As an example we will temporarily remove java from the USE-setting |
223 | As an example we will temporarily remove java from the USE setting |
| 169 | during the installation of mozilla. |
224 | during the installation of seamonkey. |
| 170 | </p> |
225 | </p> |
| 171 | |
226 | |
| 172 | <note> |
|
|
| 173 | The <c>emerge</c> command will be discussed more thoroughly in <uri |
|
|
| 174 | link="?part=2&chap=2">Portage and Software</uri>. |
|
|
| 175 | </note> |
|
|
| 176 | |
|
|
| 177 | <pre caption="Using USE as evironment variable"> |
227 | <pre caption="Using USE as environment variable"> |
| 178 | # <i>USE="-java" emerge mozilla</i> |
228 | # <i>USE="-java" emerge seamonkey</i> |
| 179 | </pre> |
229 | </pre> |
| 180 | |
230 | |
| 181 | </body> |
231 | </body> |
| 182 | </subsection> |
|
|
| 183 | <subsection> |
232 | </subsection> |
| 184 | <title>Inheriting USE-flags</title> |
|
|
| 185 | <body> |
|
|
| 186 | |
|
|
| 187 | <p> |
|
|
| 188 | Some packages don't only listen to USE-flags, but also provide USE-flags. When |
|
|
| 189 | you install such a package, the USE-flag they provide is added to your USE |
|
|
| 190 | setting. To view the list of packages that provide a USE-flag, check |
|
|
| 191 | <path>/etc/make.profile/use.defaults</path>: |
|
|
| 192 | </p> |
|
|
| 193 | |
|
|
| 194 | <pre caption="A snippet from /etc/make.profile/use.defaults"> |
|
|
| 195 | gnome gnome-base/gnome |
|
|
| 196 | gtk x11-libs/gtk+ |
|
|
| 197 | qt x11-libs/qt |
|
|
| 198 | kde kde-base/kdebase |
|
|
| 199 | motif x11-libs/openmotif |
|
|
| 200 | </pre> |
|
|
| 201 | |
|
|
| 202 | </body> |
|
|
| 203 | </subsection> |
233 | <subsection> |
| 204 | <subsection> |
|
|
| 205 | <title>Precendence</title> |
234 | <title>Precedence</title> |
| 206 | <body> |
235 | <body> |
| 207 | |
236 | |
| 208 | <p> |
237 | <p> |
| 209 | Of course there is a certain precendence on what setting has priority over the |
238 | Of course there is a certain precedence on what setting has priority over the |
| 210 | USE setting. You don't want to declare <c>USE="-java"</c> only to see that |
239 | USE setting. You don't want to declare <c>USE="-java"</c> only to see that |
| 211 | <c>java</c> is declared anyway. The precedence for the USE setting is, ordered |
240 | <c>java</c> is still used due to a setting that has a higher priority. |
|
|
241 | The precedence for the USE setting is, ordered |
| 212 | by priority (first has lowest priority): |
242 | by priority (first has lowest priority): |
| 213 | </p> |
243 | </p> |
| 214 | |
244 | |
| 215 | <ol> |
245 | <ol> |
| 216 | <li> |
246 | <li> |
| 217 | Default USE setting declared in <path>/etc/make.profile/make.defaults</path> |
247 | Default USE setting declared in the <path>make.defaults</path> files part of |
| 218 | </li> |
248 | your profile |
| 219 | <li> |
|
|
| 220 | Inherited USE setting if a package from |
|
|
| 221 | <path>/etc/make.profile/use.defaults</path> is installed |
|
|
| 222 | </li> |
249 | </li> |
| 223 | <li> |
250 | <li> |
| 224 | User-defined USE setting in <path>/etc/make.conf</path> |
251 | User-defined USE setting in <path>/etc/make.conf</path> |
| 225 | </li> |
252 | </li> |
| 226 | <li> |
253 | <li> |
|
|
254 | User-defined USE setting in <path>/etc/portage/package.use</path> |
|
|
255 | </li> |
|
|
256 | <li> |
| 227 | User-defined USE setting as environment variable |
257 | User-defined USE setting as environment variable |
| 228 | </li> |
258 | </li> |
| 229 | </ol> |
259 | </ol> |
| 230 | |
260 | |
| 231 | <p> |
261 | <p> |
| 232 | To view the final <c>USE</c> setting as seen by Portage, run <c>emerge info</c>. |
262 | To view the final <c>USE</c> setting as seen by Portage, run <c>emerge |
| 233 | This will list all relevant variables (including the <c>USE</c> variable) with |
263 | --info</c>. This will list all relevant variables (including the <c>USE</c> |
| 234 | the content used by Portage. |
264 | variable) with the content used by Portage. |
| 235 | </p> |
265 | </p> |
| 236 | |
266 | |
| 237 | <pre caption="Running emerge info"> |
267 | <pre caption="Running emerge --info"> |
| 238 | # <i>emerge info</i> |
268 | # <i>emerge --info</i> |
|
|
269 | </pre> |
|
|
270 | |
|
|
271 | </body> |
|
|
272 | </subsection> |
|
|
273 | <subsection> |
|
|
274 | <title>Adapting your Entire System to New USE Flags</title> |
|
|
275 | <body> |
|
|
276 | |
|
|
277 | <p> |
|
|
278 | If you have altered your USE flags and you wish to update your entire system to |
|
|
279 | use the new USE flags, use <c>emerge</c>'s <c>--newuse</c> option: |
| 239 | </pre> |
280 | </p> |
|
|
281 | |
|
|
282 | <pre caption="Rebuilding your entire system"> |
|
|
283 | # <i>emerge --update --deep --newuse world</i> |
|
|
284 | </pre> |
|
|
285 | |
|
|
286 | <p> |
|
|
287 | Next, run Portage's depclean to remove the conditional dependencies that |
|
|
288 | were emerged on your "old" system but that have been obsoleted by the new USE |
|
|
289 | flags. |
|
|
290 | </p> |
|
|
291 | |
|
|
292 | <warn> |
|
|
293 | Running <c>emerge --depclean</c> is a dangerous operation and should be handled |
|
|
294 | with care. Double-check the provided list of "obsoleted" packages to make sure |
|
|
295 | it doesn't remove packages you need. In the following example we add the |
|
|
296 | <c>-p</c> switch to have depclean only list the packages without removing them. |
|
|
297 | </warn> |
|
|
298 | |
|
|
299 | <pre caption="Removing obsoleted packages"> |
|
|
300 | # <i>emerge -p --depclean</i> |
|
|
301 | </pre> |
|
|
302 | |
|
|
303 | <p> |
|
|
304 | When depclean has finished, run <c>revdep-rebuild</c> to rebuild the |
|
|
305 | applications that are dynamically linked against shared objects provided by |
|
|
306 | possibly removed packages. <c>revdep-rebuild</c> is part of the |
|
|
307 | <c>gentoolkit</c> package; don't forget to emerge it first. |
|
|
308 | </p> |
|
|
309 | |
|
|
310 | <pre caption="Running revdep-rebuild"> |
|
|
311 | # <i>revdep-rebuild</i> |
|
|
312 | </pre> |
|
|
313 | |
|
|
314 | <p> |
|
|
315 | When all this is accomplished, your system is using the new USE flag settings. |
|
|
316 | </p> |
| 240 | |
317 | |
| 241 | </body> |
318 | </body> |
| 242 | </subsection> |
319 | </subsection> |
| 243 | </section> |
320 | </section> |
| 244 | <section> |
321 | <section> |
| 245 | <title>Package specific USE-flags</title> |
322 | <title>Package specific USE flags</title> |
| 246 | <subsection> |
323 | <subsection> |
| 247 | <title>Viewing available USE-flags</title> |
324 | <title>Viewing available USE flags</title> |
| 248 | <body> |
325 | <body> |
| 249 | |
326 | |
| 250 | <p> |
|
|
| 251 | In the next chapter on <uri link="?part=2&chap=2">Portage and Software</uri> |
|
|
| 252 | we will explain how to manage your installed software and how to work with |
|
|
| 253 | <c>emerge</c>. However, we will give you a primer on <c>emerge</c> by showing |
|
|
| 254 | you how to view what USE-flags a package uses. |
|
|
| 255 | </p> |
327 | <p> |
| 256 | |
|
|
| 257 | <p> |
|
|
| 258 | Let us take the example of <c>mozilla</c>: what USE-flags does it listen to? To |
328 | Let us take the example of <c>seamonkey</c>: what USE flags does it listen to? To |
| 259 | find out, we use <c>emerge</c> with the <c>--pretend</c> (don't really do |
329 | find out, we use <c>emerge</c> with the <c>--pretend</c> and <c>--verbose</c> |
| 260 | anything) and <c>--verbose</c> (give more output) options: |
330 | options: |
| 261 | </p> |
331 | </p> |
| 262 | |
332 | |
| 263 | <pre caption="Viewing the used USE-flags"> |
333 | <pre caption="Viewing the used USE flags"> |
| 264 | # <i>emerge --pretend --verbose mozilla</i> |
334 | # <i>emerge --pretend --verbose seamonkey</i> |
| 265 | These are the packages that I would merge, in order: |
335 | These are the packages that I would merge, in order: |
| 266 | |
336 | |
| 267 | Calculating dependencies ...done! |
337 | Calculating dependencies ...done! |
| 268 | [ebuild N ] net-www/mozilla-1.5-r1 +java +crypt -ipv6 -gtk2 +ssl +ldap |
338 | [ebuild R ] www-client/seamonkey-1.0.7 USE="crypt gnome java -debug -ipv6 |
| 269 | +gnome -debug +mozcalendar -mozaccess -mozxmlterm -moznoirc -moznomail |
339 | -ldap -mozcalendar -mozdevelop -moznocompose -moznoirc -moznomail -moznopango |
| 270 | -moznocompose -moznoxft |
340 | -moznoroaming -postgres -xinerama -xprint" 0 kB |
| 271 | </pre> |
341 | </pre> |
| 272 | |
342 | |
| 273 | <p> |
343 | <p> |
| 274 | <c>emerge</c> isn't the only tool for this job. In fact, we have a tool |
344 | <c>emerge</c> isn't the only tool for this job. In fact, we have a tool |
| 275 | dedicated to package information called <c>etcat</c> which resides in the |
345 | dedicated to package information called <c>equery</c> which resides in the |
| 276 | <c>gentoolkit</c> package. First, install <c>gentoolkit</c>: |
346 | <c>gentoolkit</c> package. First, install <c>gentoolkit</c>: |
| 277 | </p> |
347 | </p> |
| 278 | |
348 | |
| 279 | <pre caption="Installing gentoolkit"> |
349 | <pre caption="Installing gentoolkit"> |
| 280 | # <i>emerge --usepkg gentoolkit</i> |
350 | # <i>emerge gentoolkit</i> |
| 281 | </pre> |
351 | </pre> |
| 282 | |
352 | |
| 283 | <p> |
353 | <p> |
| 284 | Now run <c>etcat</c> with the <c>uses</c> argument to view the USE-flags of a |
354 | Now run <c>equery</c> with the <c>uses</c> argument to view the USE flags of a |
| 285 | certain package. For instance, for the <c>gnumeric</c> package: |
355 | certain package. For instance, for the <c>gnumeric</c> package: |
| 286 | </p> |
356 | </p> |
| 287 | |
357 | |
| 288 | <pre caption="Using etcat to view used USE-flags"> |
358 | <pre caption="Using equery to view used USE flags"> |
| 289 | # <i>etcat uses gnumeric</i> |
359 | # <i>equery --nocolor uses =gnumeric-1.6.3 -a</i> |
| 290 | [ Colour Code : <i>set</i> <comment>unset</comment> ] |
360 | [ Searching for packages matching =gnumeric-1.6.3... ] |
| 291 | [ Legend : (U) Col 1 - Current USE flags ] |
361 | [ Colour Code : set unset ] |
| 292 | [ : (I) Col 2 - Installed With USE flags ] |
362 | [ Legend : Left column (U) - USE flags from make.conf ] |
| 293 | |
363 | [ : Right column (I) - USE flags packages was installed with ] |
| 294 | U I [ Found these USE variables in : app-office/gnumeric-1.2.0 ] |
364 | [ Found these USE variables for app-office/gnumeric-1.6.3 ] |
| 295 | - - <comment>libgda</comment> : Adds GNU Data Access (CORBA wrapper) support for gnumeric |
365 | U I |
| 296 | - - <comment>gnomedb</comment> : unknown |
366 | - - debug : Enable extra debug codepaths, like asserts and extra output. |
|
|
367 | If you want to get meaningful backtraces see |
|
|
368 | http://www.gentoo.org/proj/en/qa/backtraces.xml . |
|
|
369 | + + gnome : Adds GNOME support |
| 297 | + + <i>python</i> : Adds support/bindings for the Python language |
370 | + + python : Adds support/bindings for the Python language |
| 298 | + + <i>bonobo</i> : Adds support for gnome-base/bonobo (Gnome CORBA interfaces) |
371 | - - static : !!do not set this during bootstrap!! Causes binaries to be |
|
|
372 | statically linked instead of dynamically |
| 299 | </pre> |
373 | </pre> |
| 300 | |
374 | |
| 301 | </body> |
375 | </body> |
| 302 | </subsection> |
376 | </subsection> |
| 303 | </section> |
377 | </section> |