|
|
(29 intermediate revisions by 4 users not shown) |
Line 1: |
Line 1: |
| <languages/>
| | {{Project |
| {{Software | | |summary=This project is focused on {{c|metro}}, the framework used to create new Funtoo Linux builds. |
| |name=Metro | | |leads=Drobbins |
| |authors=[[User:Drobbins|Daniel Robbins]] | | |subpages=Initial Setup, Evolved Bootstrap, Manual Setup, Concepts and Terminology, Configuring Metro, Recipes, Automation, Data Model |
| |description=Metro is the Funtoo Linux automated build system, and is used to build Funtoo Linux stage tarballs.
| | |translate=yes |
| |source=[https://github.com/funtoo/metro GitHub]}} | | |updates={{Project/Update |
| {{Subpages|AutoSetup,Manual Setup,How Metro Works,Configuring Metro,Data Model,Recipes,Automation}}
| | |date=2022-10-10 |
| <translate>
| | |status=Metro now has a new [[Funtoo:Metro/Initial Setup|Initial Setup]] guide, which explains how to use the totally rewritten (and reliable) setup tool. |
| <!--T:1-->
| |
| == Installation == | |
| === Prerequisites === | |
| | |
| <!--T:22-->
| |
| Ensure that {{Package|dev-vcs/git}}, {{Package|dev-python/requests}}, {{Package|dev-python/sqlalchemy}} and {{Package|dev-python/lxml}} are installed on your system.
| |
| | |
| <!--T:23-->
| |
| {{console|body=
| |
| # ##i##emerge dev-vcs/git dev-python/requests dev-python/sqlalchemy dev-python/lxml
| |
| }} | | }} |
|
| |
| === Prerequisites for QEMU Support ===
| |
|
| |
| Metro now supports building arm-32bit and arm-64bit stages on x86-64bit systems, using qemu. To enable this functionality, it is
| |
| necessary to emerge {{Package|app-emulation/qemu}} with the following settings.
| |
|
| |
| First, add the following to{{f|/etc/portage/package.use}}:
| |
|
| |
| {{file|name=/etc/portage/package.use|body=
| |
| app-emulation/qemu static-user
| |
| dev-libs/glib static-libs
| |
| sys-apps/attr static-libs
| |
| sys-libs/zlib static-libs
| |
| dev-libs/libpcre static-libs
| |
| }}
| |
|
| |
| Next, the following should be added to {{f|/etc/make.conf}}:
| |
|
| |
| {{file|name=/etc/make.conf|body=
| |
| QEMU_USER_TARGETS="aarch64 arm"
| |
| }} | | }} |
| | <translate> |
| | == Introduction == <!--T:1--> |
|
| |
|
| Then, emerge qemu:
| | <!--T:135--> |
| | Metro is the tool used by Funtoo Linux to build new releases of Funtoo Linux. It is also available to the public and can be used to build custom versions of Funtoo Linux, or used by developers to perform build testing. This page documents how to install, configure and use Metro. Also note that there is various additional supplemental documentation available on sub-pages, with links above. |
|
| |
|
| {{console|body= | | <!--T:136--> |
| # ##i##emerge app-emulation/qemu
| | Please see [[{{FULLPAGENAME}}/Initial Setup|Initial Setup]] for instructions on how to get Metro up and running on your system. |
| }} | |
|
| |
|
| From this point forward, support for ARM on x86 systems should work transparently. Metro will take care of compiling a wrapper for qemu and temporarily installing the static version of qemu inside the stage chroot so that ARM binaries will run transparently on x86 systems. Metro will also automatically register qemu as a "binary format" with the kernel.
| | To learn how to use Funtoo from Scratch stage1 to "seed" Metro, please see our new [[{{FULLPAGENAME}}/Evolved Bootstrap|Evolved Bootstrap Integration]] document. |
| | |
| === Cloning Metro ===
| |
| <!--T:24-->
| |
| '''The recommended and supported method for installing metro''' is to clone metro's git repository to {{f|/root}}. Clone the master git repository as follows:
| |
| | |
| <!--T:25-->
| |
| {{console|body=
| |
| # ##i##cd /root
| |
| # ##i##git clone https://github.com/funtoo/metro
| |
| # ##i##cp /root/metro/metro.conf ~/.metro
| |
| }}
| |
| | |
| {{Tip|The {{f|/root/.metro}} file contains the system metro configuration, and defines where the build repository and other files should be stored. Defaults are typically fine for most users, and {{f|/home/mirror/funtoo}} will be used as the build repository path. For more information on configuration settings available, see [[Metro/Configuring Metro]].}}
| |
| | |
| You will now have a directory called {{c|/root/metro}} that contains all the Metro source code.
| |
| === Setting up ego===
| |
| Now, we will set the {{c|ego}}, administration tool of Funtoo Linux. The way it is used with metro is independent from {{c|app-admin/ego}} installed on your box. This local cloned copy of ego allows metro to potentially use a newer version of ego than what is already installed on your system, or to function under other non-Funtoo distributions like Gentoo or Ubuntu. Setup is easy as follows:
| |
| {{console|body=
| |
| # ##i##cd /root
| |
| # ##i##git clone https://github.com/funtoo/ego
| |
| }}
| |
| This way you will have {{c|/root/ego}} directory with {{c|ego}} binary that is then used by metro.
| |
| | |
| == Build Repository Setup ==
| |
| | |
| Metro uses a repository to store built stages and snapshots, which typically resides at {{f|/home/mirror/funtoo}}. There are two methods to set up your build repository -- it can be done [[Metro/Manual Setup|manually]] or [[Metro/AutoSetup|with our auto-setup script.]] The auto-setup script is of course faster and easier, while the manual method may give you a deeper understanding of how the build repository internals work.
| |
| | |
| == First Build ==
| |
| | |
| Once your build repository has been set up, you can start your first build using a command similar to the one below:
| |
| | |
| {{console|body=
| |
| # ##i##/root/metro/scripts/ezbuild.sh 1.3-release-std x86-64bit amd64-zen full
| |
| }}
| |
|
| |
|
| | <!--T:137--> |
| [[Category:HOWTO]] | | [[Category:HOWTO]] |
| [[Category:Metro]] | | [[Category:Metro]] |
| __TOC__ | | __TOC__ |
| </translate> | | </translate> |
| | |
| [[Category:Official Documentation]] | | [[Category:Official Documentation]] |
| | {{ProjectFooter}} |