emerge world Putting Your Processor to the Grindstone

Similar documents
Lilli & Webis. Terminology Administration on Gentoo Networking capabilities Web server Compilers MPI Hard drives

Gentoo Ebuilds 101. Arun Raghavan. Foss.in November 30, 2005

Gentoo Workshop. Mark Platek Clarkson University Fall 2010

Maintaining Large Software Stacks in a Cray Ecosystem with Gentoo Portage. Colin MacLean

g-pypi Documentation Release 0.3 Domen Kožar

Aurelien Jarno 26/02/2006 FOSDEM. Debian GNU/kFreeBSD. Aurelien Jarno. What? Why? Status. The future. How to help?

EAPI Cheat Sheet. Version th November Abstract

Gentoo EAPI 7. Ulrich Müller. Gentoo Linux developer, PMS/EAPI team and Council member

A Practical Introduction to Version Control Systems

Preview. Story about Linux. Story about Linux. Story about Linux. Story about GNU/Linux. Story about GNU/LINUX 1/26/2018

Gentoo for All the Unusual Reasons

COSC350 System Software

Open Enterprise & Open Community opensuse & SLE Empowering Each Other. Richard Brown opensuse Chairman

Hardening servers for the modern internet

Gentoo Linux. Software Freedom Day 2010 Charleston, SC Linux User Group. Presentation by Kevin Bowling

Embedded Systems and Gentoo Linux: An Introduction/Overview

Linux with Biology in IT

Customizing the Yocto-Based Linux Distribution for Production

Sysinstall main menu. Move the cursor down by using the DOWN-ARROW and select Standard.

PORTING GNU/LINUX TO Xbox Milosch Meriac -

How we added software updates to AGL

Projects and Environment Introduction

CS197U: A Hands on Introduction to Unix

CSSE Operating Systems. Project A Booting, Getting Started

Debian & Yocto: State of the Art

University co-operation with Maemo SW FRUCT seminar Tampere Nokia V1-Filename.ppt / YYYY-MM-DD / Initials

These boots are made for walking. Johan Montelius HT2018

RHEL Packaging. (making life easier with RPM) Jindr ich Novy Ph.D., June 26, 2012

CMake & Ninja. by István Papp

LINUXBUILD User's Manual

Hack OpenOffice.org for beginners

Operating Systems. Objective

Software Distribution and Package Management

Lab #1 Installing a System Due Friday, September 6, 2002

Linux+ Guide to Linux Certification, Third Edition. Chapter 2 Linux Installation and Usage

Intro to Segmentation Fault Handling in Linux. By Khanh Ngo-Duy

EL2310 Scientific Programming


COUCHDB - INSTALLATION

Software Deployment Packaging, Installation, Updates

Preempt-RT Raspberry Linux. VMware Tiejun Chen

Instructions. First, download the file

Organising benchmarking LLVM-based compiler: Arm experience

Poky Linux & OpenEmbedded based environment

Course Wiki. Today s Topics. Web Resources. Amazon EC2. Linux. Apache PHP. Workflow and Tools. Extensible Networking Platform 1

CS 410/510. Mark P Jones Portland State University

CHURCHILL FELLOWS COMMUNITY FORUM Powered by

Manual Shell Script Linux If File Exists Wildcard

Ubuntu Development Primer

Intramural Game Mode Tutorial

CLIP OS: Building a defense-in-depth OS with the Linux kernel and open source software

Why OpenEmbedded proved a good foundation for MontaVista. Cedric Hombourger Solutions & Services Architect


Firmware Updates on Linux

Computer Center, CS, NCTU. Outline. FreeBSD version 8.2-RELEASE. Installing FreeBSD. From CD-ROM

How to install Linux or *BSD to USB flash drive (memory stick) using Debian GNU / Linux

CS 300 Data Structures

The only open-source type-1 hypervisor

GUI Programming with GTK+

Gentoo-Bionic We can Rebuild him. Better. Stronger. Faster.

Howto: CVS to Git Efficient Multi-Module CVS Migration

Introduction to UNIX. Logging in. Basic System Architecture 10/7/10. most systems have graphical login on Linux machines

Developing with L4 Overview and Pointers

CompTIA Linux+ Guide to Linux Certification Fourth Edition. Chapter 2 Linux Installation and Usage

Linux Manually Mounting External Hard Drive Mac Terminal

Arch Linux Grub You Need To Load The Kernel First

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

HKG18-TR01: Open Source Philosophy. Daniel Lezcano

Adding GNU/Hurd support to GNU Guix Porting GNU Guix to a new platform

Elivepatch Flexible distributed Linux Kernel live patching. Alice Ferrazzi

MyEvents2Go User Guide. Pennsylvania Interactive

Introduction. Let s start with the first set of slides

Using Eclipse for C Programming

Transforming XenServer into a proper open-source project

SANOG VI IP Services Workshop: FreeBSD Install

Grub4dos tutorial - Grub4Dos Wiki

Version Control for Fun and Profit

Using GitHub to Share with SparkFun a

Zephyr Kernel Installation & Setup Manual

Part A: Setup your kernel development environment

CS 520: VCS and Git. Intermediate Topics Ben Kushigian

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Code Coverage. Copyright 2009 JADE Software Corporation Limited. All rights reserved.

Tracking FreeBSD in a Commercial Environment

MacOS X as UNIX. How to use MacOS X for your uni degree and not go insane. Stewart Smith

Building Custom Debian Distributions with the CDDTk

EL2310 Scientific Programming

The Cathedral and the Bazaar

This tutorial helps the professionals aspiring to make a career in Big Data and NoSQL databases, especially the documents store.

Agenda. Several projects are using GIT Developer(s) Junio Hamano, Linus Torvalds. Qt Stable release (January 31, 2011)

FreeBSD Handbook [Kindle Edition] By FreeBSD Documentation Project READ ONLINE

Overview. Requirements Proof of Principal. First Step Wrap Altera NIOS2 GNU Tools Next Step Build RTEMS/NIOS GNU Tools Future Plans

Algorithm Engineering

Eclipse CDT Tutorial. Eclipse CDT Homepage: Tutorial written by: James D Aniello

Adding hardware support to Buildroot

Introduction to GIT. Jordi Blasco 14 Oct 2011

How to decide Linux Kernel for Embedded Products. Tsugikazu SHIBATA NEC 20, Feb Embedded Linux Conference 2013 SAN FRANCISCO

Chapter 1 - Introduction. September 8, 2016

linux-2.6 Packaging maximilian attems Debian Kernel Team Linuxwochen Graz May 20, 2006

Command Line Parameters Linux Copy Files From Usb

Transcription:

emerge world Putting Your Processor to the Grindstone

What is Gentoo? Simply: a GNU/Linux metadistribution that focuses on building systems and software from source. Full x86 installation instructions from the Gentoo Foundation here. The user is responsible for: fetching necessary binaries for system functionality (all of /usr/bin); installing the bootloader; configuring and installing the kernel; other basic programs for a bootable system. Upstream provides: documentation on all of the above; a bootable livecd/livedvd/liveusb; basic utilities to build the above. Portage works with both FreeBSD and Linux From Scratch.

The setup The computer used for this talk is a stable x86 machine with the following: kernel; bootloader (GRUB 2); other packages as needed Portage already installed Assuming the user installed the system per the Gentoo installation manual.

Portage utility: emerge emerge is the central program for installing, managing and updating programs. This comes standard with the system. Some important features: Package information stored in flat files (ebuilds) USE flags for feature toggling Source build instructions Portage-dependent package dependencies Sync feature keeps systems current. Source files known as distfiles

Dealing with packages in Portage Keep up-to-date with with the emerge --sync command Upstream Gentoo team maintains new & removed packages on their server. Sync can be done via rsync (default) or over HTTP (webrsync option) Searching in Portage emerge -S <program name> Time consuming Package structure <category>/<package name> Ex: app-misc/hello

What is hello? It is simply a GNU "Hello, world" application. user@host:~$ hello Hello, world! For the sake of time, it is listed as app-misc/hello. Some highlights of the ebuild file: DESCRIPTION & HOMEPAGE: software description & homepage, respectively SRC_URI: where to obtain the source files Full documentation via upstream. KEYWORDS: IUSE: USE flags that the package will accept. src functions - specific instructions to carry out during certain phases of the build src_configure: carry out the specified instructions and pass them to autoconf src_install: carry out the specified instructions before and/or after executing make install An ebuild exemplar: GNU hello

USE Flags Gentoo upstream maintains full documentation online. USE flags ~= keywords: gnome enables GNOME support, ncurses enables the NCURSES text-based interface, and so forth. Some packages have USE flags specific to the program itself. E.g. Lighttpd (www-servers/lighttpd) has the webdav flag that enables a patch for that specific package. Users may set USE flags globally or on a package-specific level.

Calling emerge to build packages Installing GNU Hello: emerge -pv app-misc/hello emerge -v app-misc/hello -p or --pretend: set up, calculate dependencies, but do nothing -a or --ask: set up, calculate dependencies, but prompt the user prior to merge -v or --verbose: Tell me EVERYTHING. Documentation from Gentoo upstream man 1 emerge

Files in /etc/portage 1. make.conf 2. package.use 3. package.mask 1. This is where users can toggle USE flags globally for their system, and set other Portage-related variables. This also includes GCC flags for their processors. 2. This is for individual package USE flag toggles. Syntax: <package name> <+/-flag> 3. Block packages entirely.

Keeping up with the Joneses Maintaining a list of installed packages (sets) via flat files. system: the list of packages needed for basic system functionality To update this set: emerge system world: all the packages that the user has manually installed as well as any dependencies merged. To update this set: emerge world These packages are written to /var/lib/portage/world. DO NOT EDIT THIS FILE MANUALLY.

Hacking Portage for Fun and Profit eix (app-portage/eix) Builds a flat file database of everything installed & available in Portage This speeds up searches greatly Provides version information Provides description & homepage Will also list toggled & available USE flags Gentoolkit (app-portage/gentoolkit) A suite of programs, inc: equery The uses flag lists and describes all of the available USE flags for a package. list flag will search for any packages installed matching the query

Other resources Gentoo Wiki Gentoo upstream documentation Gentoo forums Gentoo/FreeBSD logo Unofficial Gentoo mascot: Larry the Cow Speaker information: Glenn Kerbein spontaneousdancing.net