Gentoo Linux alpha Handbook: Working with Portage

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Handbook:Alpha/Full/Portage and the translation is 100% complete.

Portage கோப்புகள்

உள்ளமைவு வழிகாட்டுதல்கள்

Portage ஆனது /usr/share/portage/config/make.globals இல் சேமித்து வைக்கப்பட்டுள்ள முன்னிருப்பு உள்ளமைவுகளோடு கிடைக்கிறது. எல்லா Portage உள்ளமைவுகளும் மாறிகள் மூலம் கையாளப்படுகிறது. என்ன மாறிகளை portage கவனிக்கிறது என்பதையும் அதன் பொருள் என்ன என்பதையும் பின்னர் விரிவாகக் காணலாம்.

Since many configuration directives differ between architectures, Portage also has default configuration files which are part of the system profile. This profile is pointed to by the /etc/portage/make.profile symlink; Portage's configurations are set in the make.defaults files of the profile and all parent profiles. We'll explain more about profiles and the /etc/portage/make.profile directory later on.

When changing a configuration variable, do not alter /usr/share/portage/config/make.globals or make.defaults. Instead use /etc/portage/make.conf which has precedence over the previous files. For more information, read the /usr/share/portage/config/make.conf.example. As the name implies, this is merely an example file - Portage does not read in this file.

It is also possible to define a Portage configuration variable as an environment variable, but we don't recommend this.

தனியமைப்பு-சார்ந்த தகவல்கள்

We've already encountered the /etc/portage/make.profile directory. Well, this is not exactly a directory but a symbolic link to a profile, by default one inside /var/db/repos/gentoo/profiles/ although one can create their own profiles elsewhere and point to them. The profile this symlink points to is the profile to which the system adheres.

A profile contains architecture-specific information for Portage, such as a list of packages that belong to the system corresponding with that profile, a list of packages that don't work (or are masked-out) for that profile, etc.

பயனர்-சார்ந்த உள்ளமைவு

When Portage's behavior needs to be changed regarding the installation of software, then the right set of files inside /etc/portage/ will need to be changed. It is highly recommended to use files within /etc/portage/ and highly discouraged to override the behavior through environment variables!

Within /etc/portage/ users can create the following files:

  • package.mask which lists the packages that Portage should never try to install
  • package.unmask which lists the packages Portage should be able to install even though the Gentoo developers highly discourage users from emerging them
  • package.accept_keywords which lists the packages Portage should be able to install even though the package hasn't been found suitable for the system or architecture (yet)
  • package.use which lists the USE flags to use for certain packages without having the entire system use those USE flags

These don't have to be files; they can also be directories that contain one file per package. More information about the /etc/portage/ directory and a full list of possible files that can be created can be found in the Portage man page:

user $man portage

Portage கோப்பு மற்றும் அடைவு இருப்பிடங்களை மாற்றுதல்

The previously mentioned configuration files cannot be stored elsewhere - Portage will always look for those configuration files at those exact locations. However, Portage uses many other locations for various purposes: build directory, source code storage, Gentoo repository location, ...

All these purposes have well-known default locations but can be altered to personal taste through /etc/portage/make.conf. The rest of this chapter explains what special-purpose locations Portage uses and how to alter their placement on the filesystem.

This document isn't meant to be used as a reference though. To get 100% coverage, please consult the Portage and make.conf man pages:

user $man portage
user $man make.conf

கோப்புகளைச் சேமித்தல்

ஜென்டூ ebuild கருவூலம்

The default location of the Gentoo ebuild repository is at /var/db/repos/gentoo. This is defined by the default repos.conf file found at /usr/share/portage/config/repos.conf. To modify the default, copy this file to /etc/portage/repos.conf/gentoo.conf and change the location setting. When storing the Gentoo ebuild repository elsewhere (by altering this variable), don't forget to change the /etc/portage/make.profile symbolic link accordingly.

After changing the location setting in /etc/portage/repos.conf/gentoo.conf, it is recommended to alter the following variables in /etc/portage/make.conf as well since they will not notice the location change. This is due to how Portage handles variables: PKGDIR, DISTDIR, and RPMDIR.

முன் கட்டப்பட்ட இருமத் தொகுதிகள்

Even though Portage doesn't use prebuilt binaries by default, it has extensive support for them. When asking Portage to work with prebuilt packages, it will look for them in /var/cache/binpkgs. This location is defined by the PKGDIR variable.

மூல நிரல்

Application source code is stored in /var/cache/distfiles by default. This location is defined by the DISTDIR variable.

Portage தரவகம்

Portage stores the state of the system (what packages are installed, what files belong to which package, ...) in /var/db/pkg.

Do not alter the system state files manually! It might break Portage's knowledge of the system.

Portage பதுக்ககம்

The Portage cache (with modification times, virtuals, dependency tree information, ...) is stored in /var/cache/edb. This location really is a cache: users can clean it if they are not running any Portage-related application at that moment.

மென்பொருளைக் கட்டுதல்

தற்காலிக portage கோப்புகள்

இயல்பாக Portage இன் தற்காலிக கோப்புகள் /var/tmp/ என்னும் இடத்தில் சேமித்து வைக்கப்பட்டிருக்கும். இதை PORTAGE_TMPDIR என்னும் மாறி வரையறுக்கிறது.

அடைவைக் கட்டுதல்

Portage ஆனது அது emerge செய்யும் ஒவ்வொரு தொகுப்பிற்கும் ஒரு குறிப்பிட்ட கட்டு அடைவை /var/tmp/portage/ என்னும் இடத்திற்குள் உருவாக்குகிறது. இந்த இடம் portage/ ஆல் கடையிணைப்பு செய்யப்பட்ட PORTAGE_TMPDIR மாறியால் வரையறுக்கப்பட்டுள்ளது.

நிகழ் கோப்பு முறைமை இருப்பிடம்

By default Portage installs all files on the current filesystem (/), but this can be changed by setting the ROOT environment variable. This is useful when creating new build images.

குறிப்புப்பதிவிடல் தனிச்சிறப்புகள்

இ-கட்டு (Ebuild) குறிப்புப்பதிவிடல்

Portage can create per-ebuild log files, but only when the PORT_LOGDIR variable is set to a location that is writable by Portage (through the Portage user). By default this variable is unset. If PORT_LOGDIR is not set, then there will not be any build logs with the current logging system, though users may receive some logs from the new elog support.

If PORT_LOGDIR is not defined and elog is used, then build logs and any other logs saved by elog will be made available, as explained below.

Portage offers fine-grained control over logging through the use of elog:

  • PORTAGE_ELOG_CLASSES: இவ்விடத்தில் பயனர்கள் என்ன செய்திகளை குறிப்புப்பதிவு செய்து வைத்துக்கொள்ளலாம் என்பதை வரையறுத்துக்கொள்ளலாம். இது info, warn, error, log மற்றும் qa ஆகியவற்றின் ஏதாவதொரு இடைவெளியால்-பிரிக்கப்பட்ட கூட்டாக இருக்கலாம்.
    • info: ebuild ஆல் அச்சடிக்கப்பட்ட "einfo" செய்திகளை குறிப்புப்பதிவு செய்கிறது.
    • warn: ebuild ஆல் அச்சடிக்கப்பட்ட "ewarn" செய்திகளை குறிப்புப்பதிவு செய்கிறது.
    • error: ebuild ஆல் அச்சடிக்கப்பட்ட "eerror" செய்திகளை குறிப்புப்பதிவு செய்கிறது.
    • log: சில ebuild களால் கண்டறியப்பட்ட "elog" செய்திகளை குறிப்புப்பதிவு செய்கிறது.
    • qa: ebuild ஆல் அச்சடிக்கப்பட்ட "QA Notice" செய்திகளை குறிப்புப்பதிவு செய்கிறது.
  • PORTAGE_ELOG_SYSTEM: This selects the module(s) to process the log messages. If left empty, logging is disabled. Any space-separated combination of save, custom, syslog, mail, save_summary, and mail_summary can be used. At least one module must be used in order to use elog.
    • save: This saves one log per package in $PORT_LOGDIR/elog, or /var/log/portage/elog if $PORT_LOGDIR is not defined.
    • custom: Passes all messages to a user-defined command in $PORTAGE_ELOG_COMMAND; this will be discussed later.
    • syslog: Sends all messages to the installed system logger.
    • mail: Passes all messages to a user-defined mailserver in $PORTAGE_ELOG_MAILURI; this will be discussed later. The mail features of elog require >=portage-2.1.1.
    • save_summary: Similar to save, but it merges all messages in $PORT_LOGDIR/elog/summary.log, or /var/log/portage/elog/summary.log if $PORT_LOGDIR is not defined.
    • mail_summary: Similar to mail, but it sends all messages in a single mail when emerge exits.
  • PORTAGE_ELOG_COMMAND: This is only used when the custom module is enabled. Users can specify a command to process log messages. Note that the command can make use of two variables: ${PACKAGE} is the package name and version, while ${LOGFILE} is the absolute path to the logfile. For instance:
CODE எடுத்துக்காட்டு PORTAGE_ELOG_COMMAND வரையறுத்தல்
PORTAGE_ELOG_COMMAND="/path/to/logger -p '\${PACKAGE}' -f '\${LOGFILE}'"
  • PORTAGE_ELOG_MAILURI: This contains settings for the mail module such as address, user, password, mail server, and port number. The default setting is "root@localhost localhost". The following is an example for an SMTP server that requires username and password-based authentication on a particular port (the default is port 25):
PORTAGE_ELOG_MAILURI="user@some.domain username:password@smtp.some.domain:995"
  • PORTAGE_ELOG_MAILFROM: Allows the user to set the "from" address of log mails; defaults to "Portage" if unset.
  • PORTAGE_ELOG_MAILSUBJECT: Allows the user to create a subject line for log mails. Note that it can make use of two variables: ${PACKAGE} will display the package name and version, while ${HOST} is the fully qualified domain name of the host Portage is running on. For instance:
PORTAGE_ELOG_MAILSUBJECT="package \${PACKAGE} was merged on \${HOST} with some messages"
Users who used enotice with Portage-2.0.* must completely remove enotice, as it is incompatible with elog.

Portage உள்ளமைவு

முன்பு குறிப்பிட்டது போல், Portage ஐ பல மாறிகளைக் கொண்டு உள்ளமைக்கலாம். இதற்கு அவற்றை /etc/portage/make.conf என்னும் கோப்பிலோ அல்லது /etc/portage/ இடத்தில் உள்ள எதாவதொரு துணை அடைவிலோ வரையறுக்கப்பட வேண்டும். இதைப்பற்றிய கூடுதல் மற்றும் முழு தகவல்களுக்கு make.conf கோப்பையும் Portage ற்கான கைமுறை பக்கத்தையும் காணவும்:

user $man make.conf
user $man portage

கட்டு-சார்ந்த விருப்பத்தேர்வுகள்

உள்ளமைத்தல் மற்றும் தொகுப்பி விருப்பத்தேர்வுகள்

Portage ஆனது செயலிகளைக் கட்டும்போது, பின்வரும் மாறிகளின் உள்ளடக்கத்தை தொகுப்பியில் செலுத்தி குறுநிரலை உள்ளமைக்கிறது:

C மற்றும் C++ தொகுத்தலுக்கான விரும்பிய தொகுப்பி கொடிகளை வரையறுக்கிறது.
செயலியின் உள்ளமைவு குறுநிரலுக்கான கட்டு புரவலன் தகவல்களை வரையறுக்கிறது
இது make கட்டளையில் அளிக்கப்படும். பொதுவாக இது தொகுத்தல் செயலின் போது பயன்படுத்தப்படும் இணை செயல்களின் அளவை வரையறுக்க அமைக்கப்படுகிறது. make கட்டளையின் விருப்பத்தேர்வுகளைப் பற்றிய கூடுதல் தகவல்களை make கைமுறை பக்கத்தில் காணலாம்.

USE மாறியானது உள்ளமைத்தல் மற்றும் தொகுத்தலின் போதும் பயன்படும். இதைபற்றி முழுமையாக முன்புள்ள பாகத்தில் விளக்கி உரைக்கப்பட்டுள்ளது.

ஒன்றாக்குதல் விருப்பத்தேர்வுகள்

When Portage has merged a newer version of a certain software title, it will remove the obsoleted files of the older version from the system. Portage gives the user a 5 second delay before unmerging the older version. These 5 seconds are defined by the CLEAN_DELAY variable.

It is possible to tell emerge to use certain options every time it is run by setting EMERGE_DEFAULT_OPTS. Some useful options would be --ask, --verbose, --tree, and so on.

உள்ளமைவு கோப்பு பாதுகாப்பு

Portage-பாதுகாக்கப்பட்ட இருப்பிடங்கள்

Portage overwrites files provided by newer versions of a software title if the files aren't stored in a protected location. These protected locations are defined by the CONFIG_PROTECT variable and are generally configuration file locations. The directory listing is space-delimited.

A file that would be written in such a protected location is renamed and the user is warned about the presence of a newer version of the (presumable) configuration file.

இப்போதைய CONFIG_PROTECT அமைப்புகளைப் பற்றி அறிந்துகொள்வதற்கு, emerge --info இன் வெளியீட்டைப் பயன்படுத்தவும்:

user $emerge --info | grep 'CONFIG_PROTECT='

Portage இன் உள்ளமைவு கோப்பு பாதுகாப்பு பற்றிய கூடுதல் தகவல்கள் emerge கைமுறை பக்கத்தில் உள்ள CONFIGURATION FILES பிரிவில் கிடைக்கும்:

user $man emerge

அடைவுகளை தவிர்த்தல்

பாதுகாக்கப்பட்ட இடங்களில் உள்ள சில குறிப்பிட்ட துணை அடைவுகளின் பாதுகாப்பை நீக்க, CONFIG_PROTECT_MASK மாறியைப் பயனர்கள் பயன்படுத்தலாம்.

பதிவிறக்க விருப்பத்தேர்வுகள்

சேவையக இருப்பிடங்கள்

When the requested information or data is not available on the system, Portage will retrieve it from the Internet. The server locations for the various information and data channels are defined by the following variables:

மூலநிரல் கோப்புகளை (distfiles) கொண்டுள்ள சேவையக இருப்பிடங்களின் பட்டியலை வரையறுக்கிறது.
முறைமைக்கான முன்-கட்டப்பட்ட தொகுப்புகளைக் கொண்டுள்ள குறிப்பிட்ட சேவையக இருப்பிடத்தை வரையறுக்கிறது.

A third setting involves the location of the rsync server which users use to update their local Gentoo repository. This is defined in the /etc/portage/repos.conf file (or a file inside that directory if it is defined as a directory):

சேவையகத்தின் வகை மற்றும் rsync ற்கான முன்னிருப்புகள் ஆகியவற்றை வரையறுக்கிறது.
ஜென்டூ கருவூலத்திலிருந்து எடுத்துக் கொண்டு வருவதற்கு Portage பயன்படுத்தும் குறிப்பிட்ட சேவையகத்தை வரையறுக்கிறது.

GENTOO_MIRRORS, sync-type மற்றும் sync-uri மாறிகளை mirrorselect செயலியின் மூலம் தானியக்கமாக அமைக்க இயலும். ஐயத்திற்கு இடமின்றி, இதைப் பயன்படுத்துவதற்கு முன் app-portage/mirrorselect நிறுவப்பட்டிருக்க வேண்டும். மேலும் தகவல்களுக்கு, mirrorselect இன் எழிவரி உதவியைப் பார்க்கவும்:

root #mirrorselect --help

சூழலுக்கு பதிலி சேவையகத்தின் பயன்பாடு தேவைப்பட்டால், http_proxy, ftp_proxy மற்றும் RSYNC_PROXY மாறிகளை அறிவித்துக்கொள்ளலாம்.

Fetch கட்டளைகள்

மூலநிரல் கோப்புகளை எடுத்துக் கொண்டு வருவதற்கு Portage ஆனது wget ஐ இயல்பாகப் பயன்படுத்துகிறது. இதை FETCHCOMMAND மாறி மூலம் மாற்றிக்கொள்ளலாம்.

Portage ஆல், பகுதியளவில் பதிவிறக்கப்பட்ட மூலநிரல் கோப்புகளை மீண்டும் தொடர இயலும். இது இயல்பாக wget ஐ பயன்படுத்துகிறது எனினும் இதை RESUMECOMMAND மாறி மூலம் மாற்றிக்கொள்ளலாம்.

Make sure that the FETCHCOMMAND and RESUMECOMMAND store the source code in the correct location. Inside the variables the \${URI} and \${DISTDIR} variables can be used to point to the source code location and distfiles location respectively.

FETCHCOMMAND_HTTP, FETCHCOMMAND_FTP, RESUMECOMMAND_HTTP, RESUMECOMMAND_FTP மற்றும் பலவற்றை கொண்டு நெறிமுறை-சார்ந்த கையாளு நிரல்களை வரையறுக்கவும் வாய்ப்புள்ளது.

Rsync அமைப்புகள்

It is not possible to alter the rsync command used by Portage to update the Gentoo repository, but it is possible to set some variables related to the rsync command:

Sets a number of default variables used during sync, each space-separated. These shouldn't be changed unless you know exactly what you're doing. Note that certain absolutely required options will always be used even if PORTAGE_RSYNC_OPTS is empty.
ஒத்திசைவின் போது கூடுதல் விருப்பத்தேர்வுகளை அமைப்பதற்கு இது பயன்படும். ஒவ்வொரு விருப்பத்தேர்வும் இடைவெளியால் பிரிக்கப்பட்டதாகும்:
இது rsync ஒரு தொடர்பானது நேர முடிவு அடைந்துவிட்டது எனக் கருதுவதற்கு முன் எவ்வளவு நேரம் rsync தொடர்பு காத்திருப்பில் இருப்பதற்கான வினாடிகளின் எண்ணிக்கையை வரையறுக்கிறது. இது 180 இல் முன்னிருப்பாக உள்ளது. எனினும் அழைப்புவழி மற்றும் மெதுவாக வேலை செய்யும் கணினிகளைப் பயன்படுத்தும் பயனர்கள் இதை 300 அல்லது அதற்கும் மேல் அமைக்கலாம்.
இது இற்றைப்படுத்தலின்போது rsync ஆனது தவிர்க்க வேண்டிய தொகுப்புகள் மற்றும்/அல்லது பகுப்புகளின் பட்டியலைக் கொண்டுள்ள கோப்பை சுட்டிக்காட்டுகிறது. இந்த வழக்கில், இது /etc/portage/rsync_excludes ஐ சுட்டிக்காட்டுகிறது.
திரையில் வெளிவரும் வெளியீட்டின் அளவை குறைக்கும்.
முழு கோப்பு பட்டியலைத் திரையில் அச்சிடும்.
ஒவ்வொரு கோப்பிற்கான முன்னேற்ற மானியைத் திரையில் காட்டுகிறது.
Defines how many times rsync should try connecting to the mirror pointed to by the SYNC variable before bailing out. This variable defaults to 3.

இந்த விருப்பத்தேர்வுகளைப் பற்றிய மேலும் தகவல்களுக்கு, rsync இன் கைமுறை பக்கத்தைப் படிக்கவும்:

ஜென்டூ உள்ளமைவு

கிளை தேர்ந்தெடுத்தல்

It is possible to change the default branch with the ACCEPT_KEYWORDS variable. It defaults to the architecture's stable branch. More information on Gentoo's branches can be found in the next chapter.

Portage இன் தனிச்சிறப்புகள்

It is possible to activate certain portage features through the FEATURES variable. The Portage features have been discussed in previous chapters.

Portage இன் நடத்தை

வள மேலாண்மை

With the PORTAGE_NICENESS variable users can augment or reduce the nice value portage runs with. The PORTAGE_NICENESS value is added to the current nice value.

nice மதிப்புகளைப் பற்றிய மேலும் தகவல்களுக்கு, nice இன் கைமுறை பக்கத்தைக் காணவும்:

user $man nice

வெளியீடு நடத்தை

NOCOLOR மாறியானது false மதிப்பை முன்னிருப்பாகக் கொண்டுள்ளது. இது வண்ணமிடப்பட்ட வெளியீட்டைப் பயன்படுத்துவதை Portage முடக்க வேண்டுமா என்பதை வரையறுக்கிறது.

ஒரு கிளையைப் பயன்படுத்துதல்


ACCEPT_KEYWORDS மாறியானது முறைமையில் என்ன மென்பொருள் கிளையைப் பயன்படுத்த வேண்டும் என்பதை வரையறுக்கிறது. இது முன்னிருப்பாக முறைமையின் கட்டமைப்பிற்கான நிலையான மென்பொருள் கிளையைப் பயன்படுத்துகிறது. எடுத்துக்காட்டாக, alpha.

நிலையான கிளையைப் பயன்படுத்தப் பரிந்துரைக்கப்படுகிறது. எனினும், நிலையில்லாத மென்பொருளை இயக்குவதன் மூலம் ஜென்டூ செயற்றிட்டத்திற்கு உதவ நிர்வாகி விரும்பினால், கட்டமைப்பு சோதித்தல் கிளையைப் பயன்படுத்தலாம். எடுத்துக்காட்டாக: ~alpha. எச்சரிக்கையாக இருங்கள், நிலையில்லாத மென்பொருளைப் பயன்படுத்தும்போது சில சிக்கல்கள் ஏற்படலாம், அவ்வாறு எதாவது நேர்ந்தால் வழுவறிக்கையை என்னும் இணையதளத்தில் தாக்கல் செய்ய வேண்டியிருக்கும்.


இன்னும் அண்மை மென்பொருளைப் பயன்படுத்த, பயனர்கள் இதற்குப் பதிலாகச் சோதித்தல் கிளையைப் பயன்படுத்துவதைக் கருதலாம். Portage ஐ சோதித்தல் கிளையைப் பயன்படுத்தச் செய்வதற்கு, கட்டமைப்பின் முன் ~ என்னும் குறியைச் சேர்க்கவும்.

சோதித்தல் கிளையானது அதன் பெயரில் குறிப்பிட்டுள்ளது போல் சோதித்தலுக்கானதாகும். இதன் பொருள், உருவாக்குநர்கள் இதைச் செயல்படக்கூடியதாகக் கருதினாலும் இன்னும் இது முழுவதுமாக சோதிக்கப்படவில்லை. சோதித்தல் கிளையைப் பயன்படுத்தும் பயனர்கள் இந்த தொகுப்பில் உள்ள வழுவை கண்டுபிடிக்கும் முதல் ஆளாகக்கூட இருக்கலாம். அத்தகைய வழக்கில், இதைப் பற்றி உருவாக்குநர்கள் அறியும் வகையில் ஒரு வழுவறிக்கையை அவர்கள் தாக்கல் செய்ய வேண்டும்.

கவனமாக இருக்கவும்; சோதித்தல் கிளையைப் பயன்படுத்தும்போது உறுதி நிலை சிக்கல்கள், குறைபாடான தொகுப்பு கையாளுதல் (எடுத்துக்காட்டாகத் தவறான/காணாத சார்புநிலைகள்), அடிக்கடி இற்றைப்படுத்தல்கள் (இதன் விளைவாக நிறையக் கட்டுதல்கள்) அல்லது உடைந்த தொகுப்புகள் ஆகிய சிக்கல்கள் நேரலாம். ஜென்டூ எவ்வாறு வேலை செய்கிறது மற்றும் எவ்வாறு இடர்பாடுகளைத் தீர்ப்பது என்பதைப் பற்றி அறியாத பயனர்கள் நிலையான மற்றும் சோதிக்கப்பட்ட கிளையிலேயே இருக்குமாறு பரிந்துரைக்கிறோம்.

எடுத்துக்காட்டாக, alpha கட்டமைப்பிற்கான சோதித்தல் கிளையைத் தேர்வு செய்வதற்கு, /etc/portage/make.conf ஐ இவ்வாறு திருத்தியமைக்கவும்:

FILE /etc/portage/make.confசோதித்தல் கிளையைப் பயன்படுத்துதல்

நிலையான கிளையிலிருந்து சோதித்தல் கிளைக்கு மாற்றும்போது, நிறையத் தொகுப்புகள் இற்றைப்படுத்தப்படுவதைப் பயனர்கள் கண்டறியலாம். நினைவில் வைத்துக் கொள்ளுங்கள், சோதித்தல் கிளைக்கு மாறிய பின், மீண்டும் நிலையான கிளைக்கு மாறுவது அறைகூவலாக இருக்கலாம்.

சோதித்தல் கிளையோடு நிலையான கிளையைக் கலக்குதல்


குறிப்பிட்ட தொகுப்புகளுக்கு மட்டும் சோதித்தல் கிளையை அனுமதித்து மீதமுள்ள முறைமைக்கு நிலையான கிளையைப் பயன்படுத்துமாறு Portage இடம் கேட்டுக்கொள்ள இயலும். இதைச் செய்ய, தொகுப்பின் பகுப்பு மற்றும் பெயரை /etc/portage/package.accept_keywords இல் சேர்க்கவும். இதற்குப் பதிலாக இங்கு ஒரு அடைவை உருவாக்கி (அதே பெயரில்) அந்த அடைவின் கீழுள்ள கோப்பில் தொகுப்பைப் பட்டியலிடவும் வாய்ப்புள்ளது.

எடுத்துக்காட்டாக, gnumeric ற்கான சோதித்தல் கிளையைப் பயன்படுத்த:

FILE /etc/portage/package.accept_keywordsgnumeric செயலிக்கு மட்டும் சோதித்தல் கிளையைப் பயன்படுத்துதல்

குறிப்பிட்ட பதிப்புகளைச் சோதித்தல்

சோதித்தல் கிளையிலிருந்து ஒரு குறிப்பிட்ட மென்பொருள் பதிப்பைப் பயன்படுத்தி, பின்வரும் பதிப்புகளுக்குச் சோதித்தல் கிளையை Portage பயன்படுத்தாமல் இருக்க, package.accept_keywords இருப்பிடத்தில் பதிப்பைச் சேர்க்கவும். இந்த வழக்கில் = செயற்குறியை பயன்படுத்தவும். மேலும், <=, <, > அல்லது >= செயற்குறிகளை பயன்படுத்திப் பதிப்பின் வரம்பை உள்ளிடலாம்.

எப்படி ஆயினும், பதிப்பு தகவல் சேர்க்கப்பட்டால், செயற்குறியானது கண்டிப்பாக பயன்படுத்தப்பட்டிருக்க வேண்டும். பதிப்பு தகவல் இல்லாமல் செயற்குறியை பயன்படுத்த இயலாது.

பின்வரும் எடுத்துக்காட்டில், சோதித்தல் கிளையிலிருந்தாலும் gnumeric-1.2.13 ஐ நிறுவ அனுமதிக்குமாறு நாம் Portage இடம் கேட்கிறோம்:

FILE /etc/portage/package.accept_keywordsகுறிப்பிட்ட பதிப்பு தேர்ந்தெடுத்தலை அனுமதித்தல்

மறைக்கப்பட்ட தொகுப்புகள்


மறையவிழ்தல் தொகுப்புகளின் பயன்பாட்டை ஜென்டூ உருவாக்குநர்கள் ஆதரிப்பதில்லை. இதைச் செய்யும்போது மிகுந்த எச்சரிக்கையுடன் செயல்படவும். package.unmask மற்றும்/அல்லது package.mask ஆகியவற்றிற்குத் தொடர்புடைய ஆதரவு கோரல்களுக்குப் பதில் அளிக்காமலும் போகலாம்.

ஒரு தொகுப்பானது ஜென்டூ உருவாக்குநர்களால் மறைக்கப்பட்டு, அதற்கான காரணத்தை package.mask கோப்பில் (இயல்பாக இது /var/db/repos/gentoo/profiles/ என்னும் இடத்தில் இருக்கும்) குறிப்பிட்டிருந்த போதிலும், அந்த தொகுப்பைப் பயனர் பயன்படுத்த விரும்பினால், /etc/portage/package.unmask என்னும் கோப்பில் (இது ஒரு அடைவாக இருப்பின், இந்த அடைவில் உள்ள கோப்பில்) விரும்பிய பதிப்பைச் சேர்க்கவும் (பெரும்பாலும் இது தனியமைப்பில் உள்ள package.mask கோப்பில் இருக்கும் அதே வரியாக இருக்கும்).

எடுத்துக்காட்டாக, =net-mail/hotwayd-0.8 ஆனது மறைக்கப்பட்டிருந்தால், அதே வரியை package.unmask இருப்பிடத்தில் சேர்ப்பதன் மூலம் மறையவிழ்தல் செய்யலாம்:

FILE /etc/portage/package.unmaskஒரு குறிப்பிட்ட தொகுப்பு/பதிப்பை மறையவிழ்தல்
/var/db/repos/gentoo/profiles/package.mask இல் உள்ள பதிவானது தொகுப்பு பதிப்புகளின் வரம்பை உள்ளடக்கியிருந்தால், உண்மையில் தேவைப்படும் பதிப்பு(களை) மட்டும் மறையவிழ்தல் செய்வது இன்றியமையாததாகும். பதிப்புகளை எவ்வாறு குறிப்பிடுவது என்பதைக் கற்றுக்கொள்ள முந்தைய பிரிவைப் படிக்கவும்.


குறிப்பிட்ட ஒரு தொகுப்பை அல்லது ஒரு தொகுப்பின் குறிப்பிட்ட ஒரு பதிப்பைக் கணக்கில் எடுத்துக்கொள்ள வேண்டாம் என Portage இடம் கேட்டுக்கொள்ள இயலும். இதைச் செய்ய, தகுந்த வரியை /etc/portage/package.mask இருப்பிடத்தில் (இந்த கோப்பில் அல்லது இந்த அடைவினுள் உள்ள கோப்பில்) சேர்ப்பதன் மூலம் தொகுப்பை மறைக்கலாம்.

எடுத்துக்காட்டாக, gentoo-sources-4.9.16 ஐ விட புதிய கருநிரல் மூலங்களை Portage ஆனது நிறுவுவதைத் தவிர்ப்பதற்கு, பின்வரும் வரியை package.mask இருப்பிடத்தில் சேர்க்கவும்:

FILE /etc/portage/package.mask4.9.16 ஐ விட உயர்ந்த பதிப்பைக் கொண்டுள்ள gentoo-sources ஐ மறைத்தல்


dispatch-conf என்பது ._cfg0000_<name> கோப்புகளை ஒன்றாக்க உதவும் ஒரு கருவியாகும். ._cfg0000_<name> கோப்புகள் CONFIG_PROTECT மாறியால் பாதுகாக்கப்பட்ட அடைவில் உள்ள கோப்பை மேலெழுத Portage விரும்பும்போது இதை உற்பத்தி செய்கிறது.

dispatch-conf மூலம், நிகழும் எல்லா மாற்றங்களைக் கண்காணித்துக் கொண்டே உள்ளமைவு கோப்புகளுக்கான இற்றைப்படுத்தல்களைப் பயனர்களால் ஒன்றாக்க முடியும். dispatch-conf ஆனது உள்ளமைவு கோப்புகளின் இடையில் உள்ள வேறுபாடுகளைத் திட்டுகளாக (patches) அல்லது RCS சீராய்வு முறைமையைப் பயன்படுத்திச் சேமித்து வைக்கிறது. இதன் பொருள், ஒருவேளை உள்ளமைவு கோப்பை இற்றைப்படுத்தும்போது ஒருவர் பிழை செய்துவிட்டால், எந்த நேரத்திலும் நிர்வாகி அந்த கோப்பை அதன் முந்திய பதிப்பிற்கு மாற்றிக் கொள்ளலாம்.

dispatch-conf ஐ பயன்படுத்தும்போது, பயனர்கள் அதனிடம் உள்ளமைவு கோப்பை உள்ளதை உள்ளவாறே வைத்திருக்கவும், புதிய உள்ளமைவு கோப்பை பயன்படுத்தவும், இப்போதைய கோப்பை திருத்தியமைக்கவும் அல்லது மாற்றங்களை ஊடாடல் வழியில் ஒன்றாக்கவும் கேட்டுக்கொள்ளலாம். dispatch-conf ஆனது சில அருமையான கூடுதல் தனிச்சிறப்புகளைக் கொண்டுள்ளது:

  • கருத்துகளுக்கான இற்றைப்படுத்தல்களை மட்டுமே உள்ளடக்கிய உள்ளமைவு கோப்புகளின் இற்றைப்படுத்தல்களைத் தானியக்கமாக ஒன்றாக்குதல்.
  • வெள்ளை இடைவெளிகளின் தொகையில் மட்டுமே மாறுபடக்கூடிய உள்ளமைவு கோப்புகளைத் தானியக்கமாக ஒன்றாக்குதல்.

முதலில் /etc/dispatch-conf.conf கோப்பை திருத்தி, archive-dir மாறியால் குறிப்பிடப்பட்ட அடைவு ஒன்றை உருவாக்கவும். பிறகு dispatch-conf ஐ இயக்கவும்:

root #dispatch-conf

dispatch-conf ஐ இயக்கும்போது, ஒரு நேரத்திற்கு ஒன்று என்ற முறையில் ஒவ்வொரு மாற்றப்பட்ட உள்ளமைவு கோப்பையும் திறனாய்வு செய்யலாம். இப்போதைய உள்ளமைவு கோப்பை புதிய ஒன்றைக் கொண்டு இற்றைப்படுத்தி (மாற்றி வைத்து) அடுத்த கோப்பிற்குத் தொடர்ந்து செல்ல u விசையை அழுத்தவும். புதிய கோப்பை முற்றிலும் அழித்து (நீக்கி) அடுத்த கோப்பிற்குத் தொடர்ந்து செல்ல z ஐ அழுத்தவும்.n விசையானது இதைத் தவிர்த்து அடுத்த கோப்பிற்குச் செல்ல dispatch-conf ற்கு கட்டளையிடும். வருங்காலத்திற்கு ஒன்றாக்குதலை தள்ளிப்போடுவதற்கு இதைச் செய்யலாம். எல்லா உள்ளமைவு கோப்புகளையும் பார்த்துக் கொண்ட உடன், dispatch-conf ஆனது வெளியேறும். எந்த நிலையிலும் q விசையை அழுத்தினால் செயலியை விட்டு வெளியேறலாம்.

மேலும் தகவல்களுக்கு, dispatch-conf இன் கைமுறை பக்கத்தைக் காணவும். இது எவ்வாறு ஊடாடும் வகையில் இப்போதைய மற்றும் புதிய உள்ளமைவு கோப்புகளை ஒன்றாக்குவது, புதிய உள்ளமைவு கோப்புகளைத் திருத்துவது, கோப்புகளுக்கு இடையில் உள்ள வேறுபாடுகளை கூர்ந்தாராய்வது போன்றவற்றை விவரிக்கிறது.

user $man dispatch-conf


etc-update என்பது உள்ளமைவு கோப்புகளை ஒன்றாக்கும் மற்றொரு கருவியாகும். இது dispatch-conf ஐ போல் பயன்பாடுகளை நிறைந்ததாக, பயன்படுத்துவதற்கு எளிதாக இல்லை என்றாலும், ஒரு ஊடாடும் ஒன்றாக்குதல் அமைப்பை அளிக்கிறது. மேலும் இது சாரமற்ற மாற்றங்களைத் தானியக்க-ஒன்றாக்குதல் செய்ய வல்லது.

இருப்பினும், dispatch-conf ஐ போல் இல்லாமல், etc-update ஆனது உள்ளமைவு கோப்புகளின் பழைய பதிப்புகளை பேணி காத்து வைப்பதில்லை. கோப்பு இற்றைப்படுத்தியவுடன் பழைய பதிப்பு முழுவதுமாக போய்விடும். மிகக் கவனமாக இருக்கவும், பழைய உள்ளமைவு கோப்புகளை வைத்திருக்க விரும்பினால் etc-update ஐ காட்டிலும் dispatch-conf ஐ பயன்படுத்துவது பாதுகாப்பானதாகும்.

root #etc-update

ஒளிவு மறைவற்ற மாற்றங்களை ஒன்றாக்கிய பிறகு, இற்றைப்படுத்தல் காத்திருப்பில் உள்ள பாதுகாக்கப்பட்ட கோப்புகளின் பட்டியல் அளிக்கப்படும். கீழே வாய்ப்புள்ள விருப்பத்தேர்வுகள் காட்டப்பட்டுள்ளன:

CODE etc-update ஆல் அளிக்கப்படும் விருப்பத்தேர்வுகள்
Please select a file to edit by entering the corresponding number.
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i'):

-1 ஐ இட்டால், etc-update ஆனது வெளியேறி வேறு எதாவது மாற்றங்களை இடையில் நிறுத்திவிடும். -3 அல்லது -5 ஆனது, எல்லா பட்டியலிடப்பட்ட உள்ளமைவு கோப்புகளையும் அதன் புதிய பதிப்புகளைக் கொண்டு மேலெழுதும். இதன் காரணமாகத் தானியக்கமாக இற்றைப்படுத்தப்படக் கூடாத உள்ளமைவு கோப்புகளை முதலில் தேர்வு செய்வது மிகவும் முக்கியமானதாகும். இதை எளிமையாக உள்ளமைவு கோப்பின் இடது பக்கத்தில் பட்டியலிடப்பட்டுள்ள எண்ணை உள்ளிடுவதன் மூலம் செய்து முடிக்கலாம்.

எடுத்துக்காட்டாக, நாம் /etc/pear.conf என்னும் உள்ளமைவு கோப்பை தேர்ந்தெடுப்போம்:

CODE குறிப்பிட்ட உள்ளமைவு கோப்பை இற்றைப்படுத்துதல்
/etc/pear.conf மற்றும் /etc/._cfg0000_pear.conf இவ்விரண்டிற்கும் உள்ள வேறுபாடுகளின் துவக்கம்
/etc/pear.conf மற்றும் /etc/._cfg0000_pear.conf கான இவ்விரண்டிற்கும் உள்ள வேறுபாடுகளின் முடிவு
1) மூல கோப்பிற்குப் பதிலாக இற்றை கோப்பை மாற்றி வைக்கும்
2) இற்றை கோப்பை அழித்து, மூல கோப்பு எவ்வாறு இருந்ததோ அவ்வாறே வைக்கும்
3) ஊடாடும் வகையில் மூல கோப்பை இற்றை கோப்புடன் ஒன்றாக்கும்
4) வேறுபாட்டை மீண்டும் காண்பிக்கும்

இரண்டு கோப்புகளுக்கு இடையில் உள்ள வேறுபாடுகளைக் காண்பிக்கும். இற்றைப்படுத்தப்பட்ட உள்ளமைவு கோப்பை எந்தவித இடர்பாடுகளும் இல்லாமல் பயன்படுத்தலாம் என்றால், 1 ஐ அழுத்தவும். இற்றைப்படுத்தப்பட்ட கோப்பு இன்றியமையாததில்லை, அல்லது எந்த புதிய அல்லது பயனுள்ள தகவல்களையும் அளிக்கவில்லை என்றால், 2 ஐ அழுத்தவும். இப்போதைய உள்ளமைவு கோப்பை ஊடாடல் முறையில் இற்றைப்படுத்த வேண்டும் என்றால், 3 ஐ அழுத்தவும்.

ஊடாடல் வழி ஒன்றாக்குதலைப் பற்றி இன்னும் விரிவாக இங்கு எடுத்துரைப்பதில் எந்த பொருளும் இல்லை. இது முழுமை பெறுவதற்காக, இரண்டு கோப்புகளை ஊடாடும் வகையில் ஒன்றாக்கும்போது பயன்படுத்தப்படும் வாய்ப்புள்ள கட்டளைகளை நாங்கள் இங்கு பட்டியலிடுகிறோம். பயனர்கள் இரண்டு வரிகள் (மூல வரி மற்றும் முன்மொழிந்த புதிய வரி) மற்றும் ஒரு தூண்டி உடன் வரவேற்கப்படுவார். இந்த தூண்டியில் பின்வரும் கட்டளைகளுள் ஒன்றைப் பயனர் இடலாம்:

CODE ஊடாடும் ஒன்றாக்குதலுக்காகக் கிடைக்கும் கட்டளைகள்
ed:     திருத்திய பின் இரு பதிப்புகளையும் பயன்படுத்தும். ஒவ்வொன்றிற்கும் ஒரு மேல் தலைப்பு இடப்படும்.
eb:     திருத்திய பின் இரு பதிப்புகளையும் பயன்படுத்தும்.
el:     திருத்திய பின் இடப்பக்க பதிப்பைப் பயன்படுத்தும்.
er:     திருத்திய பின் வலப்பக்க பதிப்பைப் பயன்படுத்தும்.
e:      புதிய பதிப்பைத் திருத்தும்.
l:      இடப்பக்க பதிப்பைப் பயன்படுத்தும்.
r:      வலப்பக்க பதிப்பைப் பயன்படுத்தும்.
s:      அமைதியாக பொது வரிகளைச் சேர்க்கும்.
v:      வெளிப்படையாக பொது வரிகளைச் சேர்க்கும்.
q:      வெளியேறும்.

முக்கியமான உள்ளமைவு கோப்புகளின் இற்றைப்படுத்தலை முடித்த பின், மற்ற எல்லா உள்ளமைவு கோப்புகளையும் பயனர்கள் தானியக்கமாக இற்றைப்படுத்தலாம். இற்றைப்படுத்த வேண்டிய உள்ளமைவு கோப்புகள் எதுவும் இல்லை என்றால் etc-update ஆனது வெளியேறும்.


quickpkg ஐ கொண்டு பயனர்கள் முறைமையில் ஏற்கனவே ஒன்றாக்கப்பட்ட தொகுப்புகளின் காப்பக கோப்புகளை உருவாக்கலாம். இந்த காப்பக கோப்புகளை முன்-கட்டப்பட்ட தொகுப்புகளாகப் பயன்படுத்தலாம். quickpkg ஐ இயக்குவது ஒளிவு மறைவற்ற செயலாகும்: வெறும் தொகுப்புகளின் பெயர்களைக் காப்பக கோப்பில் சேர்க்கும்.

எடுத்துக்காட்டாக, curl, orage மற்றும் procps ஐ காப்பக படுத்த:

root #quickpkg curl orage procps

முன்-கட்டப்பட்ட தொகுப்புகள் $PKGDIR (இயல்பாக /var/cache/binpkgs/) இல் சேமித்து வைக்கப்பட்டிருக்கும். இந்த தொகுப்புகள் $PKGDIR/CATEGORY இல் வைக்கப்பட்டிருக்கும்.

ஜென்டூ கருவூலத்தின் உட்கணத்தைப் பயன்படுத்துதல்

தொகுப்புகள் மற்றும் பகுப்புகளைத் தவிர்த்து

மற்ற பகுப்புகள்/தொகுப்புகளைத் தவிர்த்து விட்டுக் குறிப்பிட்ட பகுப்புகள்/தொகுப்புகளை மட்டும் தேர்ந்தெடுத்து இற்றைப்படுத்த இயலும். இதை emerge --sync படிநிலையின் போது rsync ஐ குறிப்பிட்ட பகுப்புகள்/தொகுப்புகளைத் தவிர்க்கச் சொல்வதன் மூலம் செய்து முடிக்கலாம்.

/etc/portage/make.conf கோப்பில் உள்ள PORTAGE_RSYNC_EXTRA_OPTS மாறியில் தவிர்க்க வேண்டிய சாயல்களை உள்ளடக்கியுள்ள கோப்பின் பெயரை வரையறுக்கவும்:

FILE /etc/portage/make.confதவிர்த்தல் கோப்பை வரையறுத்தல்
FILE /etc/portage/rsync_excludesஎல்லா விளையாட்டுக்களையும் தவிர்த்தல்

புதிய, அனுமதிக்கப்பட்ட தொகுப்புகளானது சில புதிய ஆனால் தவிர்க்கப்பட்ட தொகுப்புகளைச் சார்ந்து இருக்கலாம் என்பதால் இது சார்புநிலை சிக்கல்களை விளைவிக்க வாய்ப்புள்ளது என்பதை குறித்துக்கொள்ளவும்.

இந்த வழிமுறை வேலை செய்வதற்கு, manifest சரிபார்த்தல் முடக்கப்பட்டிருக்க வேண்டும். இது கருவூலத்தின் பாதுகாப்பைக் குறைக்கும். சரிபார்த்தலை முடக்க, sys-apps/portage இல் உள்ள rsync-verify USE கொடியை முடக்கவும் அல்லது ஜென்டூ கருவூலத்தின் repos.conf பதிவில் sync-rsync-verify-metamanifest=no என அமைக்கவும்.

அதிகாரப்பூர்வமற்ற ebuild களை சேர்த்தல்

தனிப்பயன் ebuild கருவூலத்தை வரையறுத்தல்

ஜென்டூ ebuild கருவூலம் மூலம் அதிகாரப்பூர்வமாகக் கிடைக்காத ebuild களை பயன்படுத்துமாறு Portage ற்கு அறிவுறுத்த இயலும். இதைச் செய்ய, மூன்றாம் தரப்பு ebuild சேமித்து வைப்பதற்காக ஒரு புதிய அடைவை (எடுத்துக்காட்டாக /var/db/repos/localrepo) உருவாக்கவும். இந்த புதிய கருவூலத்திற்கு அதிகாரப்பூர்வ ஜென்டூ கருவூலத்தின் அடைவு கட்டமைப்பை ஒத்த அமைப்பு தேவைப்படும்.

root #mkdir -p /var/db/repos/localrepo/{metadata,profiles}
root #chown -R portage:portage /var/db/repos/localrepo

அடுத்து, கருவூலத்திற்காக நடைமுறைக்கொத்த ஒரு பெயரைத் தேர்ந்தெடுக்கவும். பின்வரும் எடுத்துக்காட்டு "localrepo" என்னும் பெயரைப் பயன்படுத்துகிறது:

root #echo 'localrepo' > /var/db/repos/localrepo/profiles/repo_name

Tell Portage that the repository master is the main Gentoo ebuild repo, and that the local repository should not be automatically synchronized (as it is not backed by an external source such as an rsync server, git mirror, or other repository type):

FILE /var/db/repos/localrepo/metadata/layout.conf
masters = gentoo
auto-sync = false

Finally, enable the repository on the local system by creating a repository configuration file inside /etc/portage/repos.conf. This will inform Portage of where the custom local repository can be found:

FILE /etc/portage/repos.conf/localrepo.conf
location = /var/db/repos/localrepo

பல்வேறு மேல்தளமிடுதல்களோடு வேளை செய்தல்

For the power users who develop on several overlays, test packages before they hit the Gentoo repository or just want to use unofficial ebuilds from various sources, the app-portage/layman package brings layman, a tool to help users keep the overlay repositories up to date.

இதற்கு மாற்றாக, Portage இல் சொந்த ஒத்திசைத்தலை பயன்படுத்த app-eselect/eselect-repository ஐ நிறுவவும். இதையும் காண்க Eselect/கருவூலம்

eselect கருவூலம்

Adding repositories is simple with the eselect module (available via app-eselect/eselect-repository):

எடுத்துக்காட்டாக, கடினமாக்கப்பட்ட-உருவாக்கம் மேல்தளமிடுதலை செயல்படுத்த:

root #eselect repository enable hardened-development

இந்த வழிமுறையின் மூலம் சேர்க்கப்பட்ட மேல்தளமிடுதல்களை எளிமையாக இவ்வாறு இற்றைப்படுத்தலாம்:

root #emerge --sync


முதலில் மேல்தளமிடுதல் பயனர் வழிகாட்டி யில் கூறியுள்ளது போல் layman ஐ நிறுவி உள்ளமைக்கவும், பின் layman -a கட்டளையைப் பயன்படுத்தி விரும்பிய கருவூலங்களைச் சேர்த்துக்கொள்ளவும்.

எடுத்துக்காட்டாக, கடினமாக்கப்பட்ட-உருவாக்கம் மேல்தளமிடுதலை செயல்படுத்த:

root #layman -a hardened-development

layman மூலம் எவ்வளவு கருவூலங்கள் பயன்படுத்தப்பட்டிருந்தாலும், பின்வரும் கட்டளையைக் கொண்டு அவை எல்லாவற்றையும் இற்றைப்படுத்தலாம்:

root #layman -S

மேல்தளங்களோடு வேலை செய்வதைப் பற்றிய மேலும் தகவல்களுக்கு, man layman என்னும் layman இன் கைமுறை பக்கத்தையும், முன்பு கூறிய layman/மேல்தளமிடுதல் பயனர் வழிகாட்டியையும் படிக்கவும்.

Portage-அல்லாத பராமரிக்கப்பட்ட மென்பொருள்

தன்-பராமரிக்கப்பட்ட மென்பொருளுடன் Portage ஐ பயன்படுத்துதல்

Sometimes users want to configure, install and maintain software individually without having Portage automate the process, even though Portage can provide the software titles. Known cases are kernel sources and Nvidia drivers. It is possible to configure Portage so it knows that a certain package is manually installed on the system (and thus take this information into account when calculating dependencies). This process is called injecting and is supported by Portage through the /etc/portage/profile/package.provided file.

எடுத்துக்காட்டாக, கைமுறையாக நிறுவப்படும் gentoo-sources-4.9.16 ஐ பற்றி Portage இடம் தெரிவிப்பதற்கு, பின்வரும் வரியை /etc/portage/profile/package.provided இல் சேர்க்கவும்:

FILE /etc/portage/profile/package.providedgentoo-sources-4.9.16 கைமுறையாக நிறுவப்பட்டுள்ளதாக குறித்தல்
இது = என்னும் குறியீடு இல்லாத பதிப்பைப் பயன்படுத்தும் கோப்பாகும்.


For most users, the information received thus far is sufficient for all their Linux operations. But Portage is capable of much more; many of its features are for advanced users or only applicable in specific corner cases. Still, that would not be an excuse not to document them.

Of course, with lots of flexibility comes a huge list of potential cases. It will not be possible to document them all here. Instead, we hope to focus on some generic issues which can then be bended to fit personal needs. More tweaks and tips can be found all over the Gentoo Wiki.

Most, if not all of these additional features can be easily found by digging through the manual pages that Portage provides:

user $man portage
user $man make.conf

Finally, know that these are advanced features which, if not worked with correctly, can make debugging and troubleshooting very difficult. Make sure to mention these when hitting a bug and opening a bug report.

ஒவ்வொரு தொகுப்பிற்கான சூழல் மாறிகள்

/etc/portage/env ஐ பயன்படுத்துதல்

By default, package builds will use the environment variables defined in /etc/portage/make.conf, such as CFLAGS, MAKEOPTS and more. In some cases though, it might be beneficial to provide different variables for specific packages. To do so, Portage supports the use of /etc/portage/env and /etc/portage/package.env.

The /etc/portage/package.env file contains the list of packages for which deviating environment variables are needed as well as a specific identifier that tells Portage which changes to make. The identifier name is free format, and Portage will look for the variables in the /etc/portage/env/IDENTIFIER file.

எடுத்துக்காட்டு: குறிப்பிட்ட தொகுப்புகளுக்காக வழுநீக்குதலைப் பயன்படுத்துதல்

எடுத்துக்காட்டாக, media-video/mplayer தொகுப்பிற்கான வழுநீக்குதலை நாம் செயல்படுத்தலாம்.

First of all, set the debugging variables in a file called /etc/portage/env/debug-cflags. The name is arbitrarily chosen, but of course reflects the reason of the deviation to make it more obvious later why a deviation was put in.

FILE /etc/portage/env/debug-cflagsவழுநீக்குதலுக்கான குறிப்பிட்ட மாறிகள்
CFLAGS="-O2 -ggdb -pipe"

Next, we tag the media-video/mplayer package to use this content:

FILE /etc/portage/package.envUsing debug-cflags for the mplayer package
media-video/mplayer debug-cflags

emerge செயல்முறையில் கொக்கியிடுதல்

/etc/portage/bashrc மற்றும் இணைக்கப்பெற்ற கோப்புகளைப் பயன்படுத்துதல்

When Portage works with ebuilds, it uses a bash environment in which it calls the various build functions (like src_prepare, src_configure, pkg_postinst, etc.). But Portage also allows users to set up a specific bash environment.

The advantage of using a specific bash environment is that it allows users to hook in the emerge process during each step it performs. This can be done for every emerge (through /etc/portage/bashrc) or by using per-package environments (through /etc/portage/env as discussed earlier).

To hook in the process, the bash environment can listen to the variables EBUILD_PHASE, CATEGORY as well as the variables that are always available during ebuild development (such as P, PF, ...). Based on the values of these variables, additional steps/functions can then be executed.

எடுத்துக்காட்டு: கோப்பு தரவுதளத்தை இற்றைப்படுத்தல்

In this example, we'll use /etc/portage/bashrc to call some file database applications to ensure their databases are up to date with the system. The applications used in the example are aide (an intrusion detection tool) and updatedb (to use with mlocate), but these are meant as examples. Do not consider this as a guide for AIDE ;-)

To use /etc/portage/bashrc for this case, we need to "hook" in the postrm (after removal of files) and postinst (after installation of files) functions, because that is when the files on the file system have been changed.

FILE /etc/portage/bashrcHooking into the postinst and postrm phases
if [ "${EBUILD_PHASE}" == "postinst" ] || [ "${EBUILD_PHASE}" == "postrm" ];
  echo ":: Calling aide --update to update its database"
  aide --update
  echo ":: Calling updatedb to update its database"

Executing tasks after --sync

Using /etc/portage/postsync.d location

Until now we've talked about hooking into the ebuild processes. However, Portage also has another important function: updating the Gentoo repository. In order to run tasks after updating the Gentoo repository, put a script inside /etc/portage/postsync.d and make sure it is marked as executable.

Example: Running eix-update

If eix-sync was not used to update the tree, then it is still possible to update the eix database after running emerge --sync (or emerge-webrsync) by putting a symlink to /usr/bin/eix called eix-update in /etc/portage/postsync.d.

root #ln -s /usr/bin/eix /etc/portage/postsync.d/eix-update
If a different name would be chosen, then it needs to be a script that calls /usr/bin/eix-update instead. The eix binary looks at how it has been called to find out which function it has to execute. If a symlink would be created that points to eix yet isn't called eix-update, it will not run correctly.

Overriding profile settings

Using /etc/portage/profile

By default, Gentoo uses the settings contained in the profile pointed to by /etc/portage/make.profile (a symbolic link to the right profile directory). These profiles define both specific settings as well as inherit settings from other profiles (through their parent file).

By using /etc/portage/profile, users can override profile settings such as packages (what packages are considered to be part of the system set), forced use flags and more.

Example: Adding nfs-utils to the system set

When using an NFS-based file systems for rather critical file systems, it might be necessary to mark net-fs/nfs-utils as a system package, causing Portage to heavily warn administrators if they would attempt to unmerge it.

To accomplish that, we add the package to /etc/portage/profile/packages, prepended with a *:

FILE /etc/portage/profile/packagesMarking nfs-utils as a system package

Applying non-standard patches

Using epatch_user

The epatch_user function is applicable to EAPIs less than or equal to 5, see the eapply_user function for EAPIs greater than or equal to 6.

To manage several ebuilds in a similar manner, ebuild developers use eclasses (which are shell libraries) that define commonly used functions. One of these eclasses is epatch.eclass which offers a helpful function called epatch_user.

The epatch_user function applies source code patches that are found in /etc/portage/patches/<category>/<package>[-<version>[-<revision>]], whatever directory is found first. Sadly, not all ebuilds automatically call this function so just putting a patch in this location might not always work.

Luckily, with the information provided earlier in this chapter, users can call this function by hooking into, for instance, the prepare phase. The function can be called as many times as necessary - it will only apply the patches once.

Example: Applying patches to Firefox

The www-client/firefox package is one of the many that already call epatch_user from within the ebuild, so there is no need to override anything specific.

If for some reason (for instance because a developer provided a patch and asked to check if it fixes the bug reported) patching Firefox is wanted, all that is needed is to put the patch in /etc/portage/patches/www-client/firefox (probably best to use the full name and version so that the patch does not interfere with later versions) and rebuild Firefox.

Warning: Display title "Gentoo Linux alpha Handbook: Working with Portage" overrides earlier display title "கையேடு:Alpha/முழு/Portage".