Changes

Build Server

1,310 bytes added, 07:51, 1 June 2015
{{Cmd
|git clone "$YOURGITREPO {PORTAGE_GIT_REPO}" portage
|cd portage
|PORTAGE_RSYNC_EXTRA_OPTS{{=}}"--exclude{{=}}/.git--exclude{{=}}/.gitignore" PORTDIR{{=}}"${PWD}" emerge-webrsync
|output=<pre>
Fetching most recent snapshot ...
{{Cmd
|PORTAGE_RSYNC_EXTRA_OPTS{{=}}"--exclude{{=}}/.git--exclude{{=}}/.gitignore" PORTDIR{{=}}"${PWD}" emerge-webrsync
|output=<pre>
Fetching most recent snapshot ...
=== Setup ===
* Create a staging root directory and extract a stage3 or stage4 tarball
* Mount proc, sys and dev (required for portage to control the tty, determine available storage space, etc.)
* Copy {{Path|/etc/resolv.conf}}
* Checkout the versioned portage tree (since you probably won't have git yet in the tree)
* Enter the chroot
|mount --rbind /sys/ "${stagingRoot}/sys/"
|cp -af /etc/resolv.conf "${stagingRoot}/etc/"
|git clone "${PORTAGE_GIT_REPO}" "${stagingRoot}/usr/portage"
|chmod -R a+rX "${stagingRoot}/usr/portage"
|chroot "${stagingRoot}" /usr/bin/env -i HOME{{=}}"/root" TERM{{=}}"${TERM}" /bin/bash --login
|}}
{{Note|We are deliberately using a special command to enter for entering the chroot to avoid leaking environment variables}}
* Install {{Package|app-portage/layman}} and probably {{Package|dev-vcs/git}} to install overlays
* You may want to add a mirror configuration if you have local mirrors:
{{File|/etc/portage/make.conf||<source lang='bash'>
GENTOO_MIRRORS="https://mirror.example.com/public/gentoo"
</source>}}
 
* If needed, put the mirror for fetch restricted ebuilds in a local mirror definition:
{{File|/etc/portage/mirrors||<pre>
local https://mirror.example.com/restricted/gentoo
</pre>}}
 
* Add the following to generate binary packages during installation:
{{File|/etc/portage/make.conf||<source lang='bash'>
FEATURES="${FEATURES} buildpkg cgroup ipc-sandbox network-sandbox parallel-fetch"
</source>}}
 
* Make sure that the repository configuration points to your git mirror as well:
{{File|/etc/portage/repos.conf/gentoo.conf||<source lang='ini'>
[DEFAULT]
main-repo = gentoo
 
[gentoo]
location = /usr/portage
sync-type = git
sync-uri = https://mirror.example.com/versioned/portage.git
</source>}}
 
* Rebuild everything:
{{RootCmd|emerge -e world}}
[[Category:Infrastructure]]
SLB
17
edits