/[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.6 Revision 1.11
1<!-- The content of this document is licensed under the CC-BY-SA license --> 1<!-- The content of this document is licensed under the CC-BY-SA license -->
2<!-- See http://creativecommons.org/licenses/by-sa/1.0 --> 2<!-- See http://creativecommons.org/licenses/by-sa/1.0 -->
3 3
4<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-portage.xml,v 1.6 2003/11/27 14:45:38 swift Exp $ --> 4<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/en/handbook/hb-working-portage.xml,v 1.11 2003/11/30 14:36:05 swift Exp $ -->
5 5
6<sections> 6<sections>
7<section> 7<section>
8<title>Obtaining Package Information</title> 8<title>Obtaining Package Information</title>
9<subsection> 9<subsection>
336</subsection> 336</subsection>
337</section> 337</section>
338<section> 338<section>
339<title>Maintaining Software</title> 339<title>Maintaining Software</title>
340<subsection> 340<subsection>
341<title>Building or Prebuild?</title> 341<title>Building or Prebuilt?</title>
342<body> 342<body>
343 343
344<p> 344<p>
345Gentoo provides ebuilds, the Gentoo packages if you like. But when you want to 345Gentoo provides ebuilds, the Gentoo packages if you like. But when you want to
346install such an ebuild, you can choose between <e>building</e> the package, or 346install such an ebuild, you can choose between <e>building</e> the package, or
347using a <e>prebuild</e> package. But what are the advantages/disadvantages of 347using a <e>prebuilt</e> package. But what are the advantages/disadvantages of
348both approaches, and can they be used next to each other? 348both approaches, and can they be used next to each other?
349</p> 349</p>
350 350
351<p> 351<p>
352As you probably have guessed, building packages takes a lot of time (especially 352As you probably have guessed, building packages takes a lot of time (especially
357Of course, you can also define high optimization options (in the <c>CFLAGS</c> 357Of course, you can also define high optimization options (in the <c>CFLAGS</c>
358and <c>CXXFLAGS</c> variables) to compile the package with. 358and <c>CXXFLAGS</c> variables) to compile the package with.
359</p> 359</p>
360 360
361<p> 361<p>
362Using prebuild packages improves the installation time (as no more compilation 362Using prebuilt packages improves the installation time (as no more compilation
363is needed), but you will lose the advantages of the <c>USE</c> setting and the 363is needed), but you will lose the advantages of the <c>USE</c> setting and the
364<c>CFLAGS</c> &amp; <c>CXXFLAGS</c> variables. 364<c>CFLAGS</c> &amp; <c>CXXFLAGS</c> variables.
365</p> 365</p>
366 366
367<p> 367<p>
368As previously stated, prebuild packages are stored in the 368As previously stated, prebuilt packages are stored in the
369<path>/usr/portage/packages/All</path> directory, while the sourcecode of the 369<path>/usr/portage/packages/All</path> directory, while the sourcecode of the
370packages are placed in <path>/usr/portage/distfiles</path>. If you have finished 370packages are placed in <path>/usr/portage/distfiles</path>. If you have finished
371installing a package you can remove the package or sourcecode from the 371installing a package you can remove the package or sourcecode from the
372respective directory. However, you might want to keep the package/sourcecode of 372respective directory. However, you might want to keep the package/sourcecode of
373the latest version, just in case you want to reinstall the package (so you don't 373the latest version, just in case you want to reinstall the package (so you don't
380<title>Installing Software from Sources</title> 380<title>Installing Software from Sources</title>
381<body> 381<body>
382 382
383<p> 383<p>
384Okay, enough talking, let's cut to the chase. To install a package, you will use 384Okay, enough talking, let's cut to the chase. To install a package, you will use
385the <c>emerge</c> command. If you don't want to use any prebuild packages, you 385the <c>emerge</c> command. If you don't want to use any prebuilt packages, you
386can just use <c>emerge &lt;package-name&gt;</c> or <c>emerge 386can just use <c>emerge &lt;package-name&gt;</c> or <c>emerge
387&lt;category&gt;/&lt;package-name&gt;</c>. As an example we'll install 387&lt;category&gt;/&lt;package-name&gt;</c>. As an example we'll install
388<c>gnumeric</c>: 388<c>gnumeric</c>:
389</p> 389</p>
390 390
438</p> 438</p>
439 439
440</body> 440</body>
441</subsection> 441</subsection>
442<subsection> 442<subsection>
443<title>Installing Prebuild Packages</title> 443<title>Installing Prebuilt Packages</title>
444<body> 444<body>
445 445
446<p> 446<p>
447When you want to install a prebuild package, you should use the <c>--usepkg</c> 447When you want to install a prebuilt package, you should use the <c>--usepkg</c>
448option (<c>-k</c> in short). This will use the binary package available in 448option (<c>-k</c> in short). This will use the binary package available in
449<path>/usr/portage/packages/All</path> <e>if</e> the package and the version of 449<path>/usr/portage/packages/All</path> <e>if</e> the package and the version of
450the application you want to install match. 450the application you want to install match.
451</p> 451</p>
452 452
453<pre caption="Installing a prebuild package for gnumeric"> 453<pre caption="Installing a prebuilt package for gnumeric">
454# <i>emerge --usepkg gnumeric</i> 454# <i>emerge --usepkg gnumeric</i>
455</pre> 455</pre>
456 456
457<p> 457<p>
458If you want to use the binary package, even if the versions don't match, use 458If you want to use the binary package, even if the versions don't match, use
459<c>--usepkgonly</c> (<c>-K</c> in short). 459<c>--usepkgonly</c> (<c>-K</c> in short).
460</p> 460</p>
461 461
462<pre caption="Installing the prebuild package for gnumeric"> 462<pre caption="Installing the prebuilt package for gnumeric">
463# <i>emerge --usepkgonly gnumeric</i> 463# <i>emerge --usepkgonly gnumeric</i>
464</pre> 464</pre>
465 465
466<!-- TODO When handbook goes life, comment out this parts until the mirrors have
467 been updated with online GRP packages. -->
468<p> 466<p>
469If you don't have the prebuild package on your system yet, you can have 467If you don't have the prebuilt package on your system yet, you can have
470<c>emerge</c> download it from a mirror, defined in the <c>PORTAGE_BINHOST</c> 468<c>emerge</c> download it from a mirror, defined in the <c>PORTAGE_BINHOST</c>
471variable declared in <path>/etc/make.conf</path>. 469variable declared in <path>/etc/make.conf</path>.
472</p> 470</p>
473 471
474<p> 472<p>
475To download the binary package in case this package doesn't exist on 473To download the binary package in case this package doesn't exist on
476your system already, use <c>--getbinpkg</c> (<c>-g</c> in short): 474your system already, use <c>--getbinpkg</c> (<c>-g</c> in short):
477</p> 475</p>
478 476
479<pre caption="Downloading and installing a prebuild package for gnumeric"> 477<pre caption="Downloading and installing a prebuilt package for gnumeric">
480# <i>emerge --getbinpkg gnumeric</i> 478# <i>emerge --getbinpkg gnumeric</i>
481</pre> 479</pre>
482 480
483<p> 481<p>
484This will download the package and the package-related information for you and 482This will download the package and the package-related information for you and
485install it on your system, together with the dependencies. If you want to see 483install it on your system, together with the dependencies. If you want to see
486what dependencies will be installed with it, use the <c>--pretend</c> option 484what dependencies will be installed with it, use the <c>--pretend</c> option
487(<c>-p</c> in short): 485(<c>-p</c> in short):
488</p> 486</p>
489 487
490<pre caption="Pretending to download the prebuild packages for gnumeric"> 488<pre caption="Pretending to download the prebuilt packages for gnumeric">
491# <i>emerge --ginbinpkg --pretend gnumeric</i> 489# <i>emerge --getbinpkg --pretend gnumeric</i>
492</pre> 490</pre>
493 491
494<p> 492<p>
495You can also opt to download the prebuild package (and the package-related 493You can also opt to download the prebuilt package (and the package-related
496information) <e>without</e> checking the information on your local system and 494information) <e>without</e> checking the information on your local system and
497<e>without</e> using the prebuild package already on your system (if 495<e>without</e> using the prebuilt package already on your system (if
498applicable), use the <c>--getbinpkgonly</c> option (<c>-G</c> in short): 496applicable), use the <c>--getbinpkgonly</c> option (<c>-G</c> in short):
499</p> 497</p>
500 498
501<pre caption="Installing a prebuild package without using local information"> 499<pre caption="Installing a prebuilt package without using local information">
502# <i>emerge --getbinpkgonly gnumeric</i> 500# <i>emerge --getbinpkgonly gnumeric</i>
503</pre> 501</pre>
504
505<!-- TODO Up until here -->
506 502
507<p> 503<p>
508You can also opt to install a specific version of a package. 504You can also opt to install a specific version of a package.
509For instance, if you want to install a gnumeric version older than 1.2 -- for 505For instance, if you want to install a gnumeric version older than 1.2 -- for
510any reason whatsoever :) you would type: 506any reason whatsoever :) you would type:
517<p> 513<p>
518Other possibilities are of course "&gt;" (later version) and "=" (the exact 514Other possibilities are of course "&gt;" (later version) and "=" (the exact
519version). 515version).
520</p> 516</p>
521 517
518
519</body>
520</subsection>
521<subsection>
522<title>Working with Dependencies</title>
523<body>
524
525<p>
526Portage has an extensive support for dependency handling. Although you usually
527don't need to even think about this (as dependencies are automatically handled
528by Portage) some users might want to know how you can work with <c>emerge</c>
529and dependencies.
530</p>
531
532<p>
533For instance, if you want Portage to pretend that none of the dependencies of a
534package are installed, you can use <c>--emptytree</c> (<c>-e</c> in short). This
535is useful with <c>--pretend</c> to display a complete tree of dependencies for
536any particular package. Without <c>--pretend</c>, <c>emerge</c> will (re)compile
537all listed packages. However, <c>glibc</c> will <e>not</e> be listed as
538dependency for safety reasons.
539</p>
540
541<pre caption="Show all dependencies of gnumeric">
542# <i>emerge --emptytree --pretend gnumeric</i>
543</pre>
544
545<p>
546Another argument is <c>--nodeps</c>, which will ask Portage to try install the
547given package without taking care of the dependencies. It is trivial that this
548can lead to failures.
549</p>
550
551<pre caption="Installing gnumeric without taking care of the dependencies">
552# <i>emerge --nodeps gnumeric</i>
553</pre>
554
555<p>
556To opposite of <c>--nodeps</c> is <c>--onlydeps</c>, which will have Portage
557install all dependencies of a given package, but not the package itself:
558</p>
559
560<pre caption="Installing the dependencies of gnumeric">
561# <i>emerge --onlydeps gnumeric</i>
562</pre>
522 563
523</body> 564</body>
524</subsection> 565</subsection>
525<subsection> 566<subsection>
526<title>Updating your System</title> 567<title>Updating your System</title>
653Portage doesn't verify if a package is a dependency for another 694Portage doesn't verify if a package is a dependency for another
654installed package. It also doesn't warn you if the package is part of 695installed package. It also doesn't warn you if the package is part of
655<e>system</e>, i.e. a core application necessary for the correct functioning of 696<e>system</e>, i.e. a core application necessary for the correct functioning of
656your system! 697your system!
657</warn> 698</warn>
699
700<p>
701Once the unmerge begins you will see a long list of filenames belonging to the
702package. Some of these filenames will have a flag displayed to the
703left of the filename. The flags <c>!mtime</c>, <c>!empty</c>, and <c>cfgpro</c>
704specify reasons why certain files are not being removed while the package is.
705Files listed without any of these three flags are removed from the
706filesystem successfully. The three flags specify the following reasons:
707</p>
708
709<ul>
710 <li>
711 <c>!mtime</c> : The listed file has been changed since it was installed,
712 probably by you or some tool
713 </li>
714 <li>
715 <c>!empty</c> : The listed directory is not empty
716 </li>
717 <li>
718 <c>cfgpro</c> : Another already installed package claims to own this file
719 </li>
720</ul>
658 721
659</body> 722</body>
660</subsection> 723</subsection>
661</section> 724</section>
662<section> 725<section>

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.11

  ViewVC Help
Powered by ViewVC 1.1.20