SlideShare a Scribd company logo
Package management and
creation in Gentoo Linux

          Donnie Berkholz
   Council Member & Sr. Developer
            Gentoo Linux

          dberkholz@gentoo.org
               @dberkholz
Me in Gentoo

The old me             The new me


               Blah, blah,
               blah..
History
Overview




           Flickr: Liam Quinn
Gentoo PM goals
• Beautiful and colorful despite
  CLI
• Fully automated software
  installation
• Extremely easy maintenance
• Available in most architectures
  and OS's
Gentoo PM goals(con't)
• Configuration file protection
  and automerge
• Advantages of compiling from
  source
• Multiple
  versions/implementations
  handling
• Binary package support
Portage features

• Customization of CFLAGS, LDFLAGS
• USE flags (more on that later)
• Various optional FEATURES
• Protection for live system
  • FEATURES sandbox, collision-
    protect, protect-owned
• Compilation acceleration
  • FEATURES ccache, distcc
• System trimming
  • FEATURES nodoc, noman, noinfo
  • INSTALL_MASK
Portage features
                (con't)
• Parallelization support
  • --jobs=JOBS --load-average=LOAD
  • MAKEOPTS='-jN'
  • FEATURES parallel-fetch
• Auto resuming after failure
  • --keep-going
• Blocker automatic solving
  • com_err and ss V.S. e2fsprogs-libs
• Debugging support
  • CFLAGS "-g3 -ggdb3 -gdwarf-2"
  • FEATURES keepwork, nostrip,
    splitdebug, installsources
Portage features
                (con't)
• Embedded system support
• Features in portage 2.2
   • License filtering
   • Generic package sets
   • FEATURES preserve-libs
Portage tree

• Gentoo's software repository
• One of the largest
• Branches
• Overlays
Ebuild file

• Defines variables and functions
    used to build/install software
•   KEYWORDS
•   SLOT
•   DEPEND, RDEPEND, PDEPEND
•   LICENSE, SRC_URI
•   Functions - src_unpack(),
    src_compile(), src_install()
•   Eclasses
USE flags

• Map onto ./configure options
• Defaults defined by profile
• Define your own in addition
  to defaults
• Install only what you want
• Example:
 • USE="-gnome kde qt -arts -nls"
EAPI: Ebuild API

• EAPI 0: Forever...
• EAPI 1: Nov 2007
• EAPI 2: Sept 2008
• EAPI 3: Jan 2010
• EAPI 4: Jan 2011
• EAPI 5: Sept 2012
EAPI 0

• dev-libs/mpc/mpc-0.8.2.ebuild
EAPI 1

• IUSE defaults
  • IUSE=+foo
• SLOT dependencies
  • DEPEND=dev-libs/foo:slotname
• dev-vcs/statcvs/
 statcvs-0.4.0-r1.ebuild
EAPI 2

• SRC_URI arrows
   • http://bar/foo.tar → foo.tar.gz
• USE dependencies
   • DEPEND=dev-libs/foo[flag]
       • [flag]
       •   [-flag]
       •   [flag=]
       •   [?flag=]
       •   [flag?]
       •   [!flag?]
•   sci-biology/arb/arb-5.1.ebuild
EAPI 2

• Blocker syntax
  • !dev-libs/foo
  • !!dev-libs/foo
• Granular builds
  • src_configure() from compile
  • src_prepare() from unpack
• Defaults for phase functions
  • e.g. default_src_unpack()
  • Also default()
• x11-libs/cairo/cairo-
 1.8.10.ebuild
EAPI 3

• Prefix support
• Unpacking of .xz archives
• media-gfx/graphviz/graphviz-
 2.26.3-r3.ebuild
EAPI 4

• pkg_pretend()
• src_install() not empty by
  default
• pkg_info() on uninstalled pkgs
• USE dependency defaults
 • flag+ flag-
 • For flags not in IUSE
• nonfatal prefix for commands
• PROPERTIES (=interactive)
• dev-vcs/git/git-1.8.1.ebuild
EAPI 4 (cont.)

• REQUIRED_USE: DEPEND for USE
  • flag1? (!flag2)
  • flag1? ( || ( flag2 flag3 ) )
  • ^^ ( flag1 flag2 )
• MERGE_TYPE=(source|binary|etc)
• REPLACING_VERSIONS,
  REPLACED_BY_VERSION
• dev-db/mongodb/mongodb-2.2.2-
  r1.ebuild
• x11-libs/cairo/cairo-
  1.12.8.ebuild
EAPI 5

• Sub-slots
  • Upgrade requires downstream
    package rebuilds
  • SLOT=2/2.30
• Slot operator dependencies
  • DEPEND=dev-libs/foo:*
  • DEPEND=dev-libs/foo:=
• Profile IUSE injection
• At-most-one-of USE groups
   • ?? ( flag1 flag2 )
• x11-wm/xmonad/xmonad-0.11.ebuild
EAPI 5

• usex [true1] [false1] [true2]
 [false2]
  • true1, false1 default to yes, no
• (do|new)header
• new* read from stdin
• EBUILD_PHASE_FUNC
  • Current ebuild phase
• Stable USE masking/forcing
EAPI 6?

bugs.gentoo.org/174380
 Gentoo Hosted Projects →
PMS/EAPI
 Summary: [Future EAPI]
 Blocks: future-eapi
Package management and
creation in Gentoo Linux

            Donnie Berkholz
    Council Member & Sr. Developer
             Gentoo Linux

           dberkholz@gentoo.org
               @dberkholz
<http://dev.gentoo.org/~dberkholz/IntroToGentoo.odp>


Copyright 2006–2013 Rajiv Manglani, Zhang Le, Donnie
Berkholz. Some rights reserved.

The Gentoo Linux logo is Copyright 2002 Gentoo Foundation,
used with permission.

This work is licensed under the Creative Commons Attribution-
NonCommercial-ShareAlike License. To view a copy of this
license, visit <
http://creativecommons.org/licenses/by-nc-sa/2.0> or send a
letter to Creative Commons, 559 Nathan Abbott Way, Stanford,
California 94305, USA.
Ad

More Related Content

What's hot (20)

Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
Sherif Mousa
 
BayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan HubbardBayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan Hubbard
iXsystems
 
Linux basics (part 2)
Linux basics (part 2)Linux basics (part 2)
Linux basics (part 2)
OSU Open Source Lab
 
NeXTBSD aka FreeBSD X
NeXTBSD aka FreeBSD XNeXTBSD aka FreeBSD X
NeXTBSD aka FreeBSD X
iXsystems
 
SELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made EasySELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made Easy
Ken Moore
 
005 skyeye
005 skyeye005 skyeye
005 skyeye
Sherif Mousa
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini
 
BusyBox for Embedded Linux
BusyBox for Embedded LinuxBusyBox for Embedded Linux
BusyBox for Embedded Linux
Emertxe Information Technologies Pvt Ltd
 
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
iXsystems
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
iXsystems
 
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
iXsystems
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
pycontw
 
The True Story of FreeNAS
The True Story of FreeNASThe True Story of FreeNAS
The True Story of FreeNAS
iXsystems
 
Sweden11
Sweden11Sweden11
Sweden11
Dru Lavigne
 
See Hudson Run, Run Hudson, Run [SELF 2010]
See Hudson Run, Run Hudson, Run [SELF 2010]See Hudson Run, Run Hudson, Run [SELF 2010]
See Hudson Run, Run Hudson, Run [SELF 2010]
Vincent Batts
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with Yocto
Prabindh Sundareson
 
Hosting Open Source Projects at the OSUOSL
Hosting Open Source Projects at the OSUOSLHosting Open Source Projects at the OSUOSL
Hosting Open Source Projects at the OSUOSL
OSU Open Source Lab
 
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
iXsystems
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
Sherif Mousa
 
Embedded Systems
Embedded SystemsEmbedded Systems
Embedded Systems
OSU Open Source Lab
 
Building Embedded Linux
Building Embedded LinuxBuilding Embedded Linux
Building Embedded Linux
Sherif Mousa
 
BayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan HubbardBayLISA - FreeNAS 10 by Jordan Hubbard
BayLISA - FreeNAS 10 by Jordan Hubbard
iXsystems
 
NeXTBSD aka FreeBSD X
NeXTBSD aka FreeBSD XNeXTBSD aka FreeBSD X
NeXTBSD aka FreeBSD X
iXsystems
 
SELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made EasySELF 2014: PBI v10: Application Management Made Easy
SELF 2014: PBI v10: Application Management Made Easy
Ken Moore
 
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini @ LinuxLab 2018 : Workshop Yocto Project, an automatic genera...
Marco Cavallini
 
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)UCL All of the Things (MeetBSD California 2014 Lightning Talk)
UCL All of the Things (MeetBSD California 2014 Lightning Talk)
iXsystems
 
Introduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John HixsonIntroduction to FreeNAS development by John Hixson
Introduction to FreeNAS development by John Hixson
iXsystems
 
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
Jenkins, Bhyve, and Webdriver: Continuous Integration testing on FreeNAS by C...
iXsystems
 
Python on FreeBSD
Python on FreeBSDPython on FreeBSD
Python on FreeBSD
pycontw
 
The True Story of FreeNAS
The True Story of FreeNASThe True Story of FreeNAS
The True Story of FreeNAS
iXsystems
 
See Hudson Run, Run Hudson, Run [SELF 2010]
See Hudson Run, Run Hudson, Run [SELF 2010]See Hudson Run, Run Hudson, Run [SELF 2010]
See Hudson Run, Run Hudson, Run [SELF 2010]
Vincent Batts
 
Qt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with YoctoQt5 (minimal) on beaglebone, with Yocto
Qt5 (minimal) on beaglebone, with Yocto
Prabindh Sundareson
 
Hosting Open Source Projects at the OSUOSL
Hosting Open Source Projects at the OSUOSLHosting Open Source Projects at the OSUOSL
Hosting Open Source Projects at the OSUOSL
OSU Open Source Lab
 
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
PCI Pass-through - FreeBSD VM on Hyper-V (MeetBSD California 2016)
iXsystems
 
Building Embedded Linux Systems Introduction
Building Embedded Linux Systems IntroductionBuilding Embedded Linux Systems Introduction
Building Embedded Linux Systems Introduction
Sherif Mousa
 

Similar to Package management and creation in Gentoo Linux (20)

The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless Containers
Akihiro Suda
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
Docking postgres
Docking postgresDocking postgres
Docking postgres
rycamor
 
Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)
Ralf Dannert
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
linuxlab_conf
 
Cloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep DiveCloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep Dive
Kazuto Kusama
 
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Codemotion
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
Akihiro Suda
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
Benjamin Zores
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
Adrian Otto
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
WTF my container just spawned a shell!
WTF my container just spawned a shell!WTF my container just spawned a shell!
WTF my container just spawned a shell!
Sysdig
 
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NoSuchCon
 
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
Fabio Fumarola
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoops
Gianluca Varisco
 
Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709
Tianwei Liu
 
Attack on the Core
Attack on the CoreAttack on the Core
Attack on the Core
Peter Hlavaty
 
The State of Rootless Containers
The State of Rootless ContainersThe State of Rootless Containers
The State of Rootless Containers
Akihiro Suda
 
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
Leonid Vasilyev  "Building, deploying and running production code at Dropbox"Leonid Vasilyev  "Building, deploying and running production code at Dropbox"
Leonid Vasilyev "Building, deploying and running production code at Dropbox"
IT Event
 
Docking postgres
Docking postgresDocking postgres
Docking postgres
rycamor
 
Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)Continuous Integration and DevOps with Open Build Service(OBS)
Continuous Integration and DevOps with Open Build Service(OBS)
Ralf Dannert
 
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily JobLuca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
Luca Ceresoli - Buildroot vs Yocto: Differences for Your Daily Job
linuxlab_conf
 
Cloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep DiveCloud Foundry V2 | Intermediate Deep Dive
Cloud Foundry V2 | Intermediate Deep Dive
Kazuto Kusama
 
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Gianluca Varisco - DevOoops (Increase awareness around DevOps infra security)
Codemotion
 
Rootless Containers
Rootless ContainersRootless Containers
Rootless Containers
Akihiro Suda
 
Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014Dependencies Managers in C/C++. Using stdcpp 2014
Dependencies Managers in C/C++. Using stdcpp 2014
biicode
 
20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw20100425 Configuration Management With Puppet Lfnw
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
Introduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux FrameworkIntroduction to OpenBricks: an Embedded Linux Framework
Introduction to OpenBricks: an Embedded Linux Framework
Benjamin Zores
 
Docker 102 - Immutable Infrastructure
Docker 102 - Immutable InfrastructureDocker 102 - Immutable Infrastructure
Docker 102 - Immutable Infrastructure
Adrian Otto
 
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Best Practices for Development Deployment & Distributions: Capital Camp + Gov...
Phase2
 
WTF my container just spawned a shell!
WTF my container just spawned a shell!WTF my container just spawned a shell!
WTF my container just spawned a shell!
Sysdig
 
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the CoreNSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NSC #2 - D3 02 - Peter Hlavaty - Attack on the Core
NoSuchCon
 
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios Conference 2014 - Mike Merideth - The Art and Zen of Managing Nagios w...
Nagios
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
Fabio Fumarola
 
Road to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoopsRoad to Opscon (Pisa '15) - DevOoops
Road to Opscon (Pisa '15) - DevOoops
Gianluca Varisco
 
Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709
Tianwei Liu
 
Ad

More from Donnie Berkholz (20)

Pricing and Packaging in Covid-19 Times - Heavybit
Pricing and Packaging in Covid-19 Times - HeavybitPricing and Packaging in Covid-19 Times - Heavybit
Pricing and Packaging in Covid-19 Times - Heavybit
Donnie Berkholz
 
Open Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old CompanyOpen Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old Company
Donnie Berkholz
 
Open Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old CompanyOpen Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old Company
Donnie Berkholz
 
Discovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWTDiscovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWT
Donnie Berkholz
 
Assholes are killing your project (MDC 2017)
Assholes are killing your project (MDC 2017)Assholes are killing your project (MDC 2017)
Assholes are killing your project (MDC 2017)
Donnie Berkholz
 
Reality Check: How much influence do developers really have?
Reality Check: How much influence do developers really have?Reality Check: How much influence do developers really have?
Reality Check: How much influence do developers really have?
Donnie Berkholz
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
Donnie Berkholz
 
Cloud Native: A dose of reality
Cloud Native: A dose of realityCloud Native: A dose of reality
Cloud Native: A dose of reality
Donnie Berkholz
 
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Donnie Berkholz
 
Mining the Go Developer Community
Mining the Go Developer CommunityMining the Go Developer Community
Mining the Go Developer Community
Donnie Berkholz
 
DevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservicesDevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservices
Donnie Berkholz
 
How the rise of DevOps and containers is transforming IT service delivery
How the rise of DevOps and containers is transforming IT service deliveryHow the rise of DevOps and containers is transforming IT service delivery
How the rise of DevOps and containers is transforming IT service delivery
Donnie Berkholz
 
How IT will disrupt in 2016: The ITaaS imperative
How IT will disrupt in 2016: The ITaaS imperativeHow IT will disrupt in 2016: The ITaaS imperative
How IT will disrupt in 2016: The ITaaS imperative
Donnie Berkholz
 
The OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and PlatformsThe OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and Platforms
Donnie Berkholz
 
Commit yourself already: Contributing to open source
Commit yourself already: Contributing to open sourceCommit yourself already: Contributing to open source
Commit yourself already: Contributing to open source
Donnie Berkholz
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyond
Donnie Berkholz
 
Can we compare communities or are they all unique snowflakes?
Can we compare communities or are they all unique snowflakes?Can we compare communities or are they all unique snowflakes?
Can we compare communities or are they all unique snowflakes?
Donnie Berkholz
 
How microservices are redefining modern application architecture
How microservices are redefining modern application architectureHow microservices are redefining modern application architecture
How microservices are redefining modern application architecture
Donnie Berkholz
 
DevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the realityDevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the reality
Donnie Berkholz
 
Emerging trends in software development: The next generation of storage
Emerging trends in software development: The next generation of storageEmerging trends in software development: The next generation of storage
Emerging trends in software development: The next generation of storage
Donnie Berkholz
 
Pricing and Packaging in Covid-19 Times - Heavybit
Pricing and Packaging in Covid-19 Times - HeavybitPricing and Packaging in Covid-19 Times - Heavybit
Pricing and Packaging in Covid-19 Times - Heavybit
Donnie Berkholz
 
Open Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old CompanyOpen Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old Company
Donnie Berkholz
 
Open Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old CompanyOpen Source & Open Community at a 100-Year-Old Company
Open Source & Open Community at a 100-Year-Old Company
Donnie Berkholz
 
Discovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWTDiscovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWT
Donnie Berkholz
 
Assholes are killing your project (MDC 2017)
Assholes are killing your project (MDC 2017)Assholes are killing your project (MDC 2017)
Assholes are killing your project (MDC 2017)
Donnie Berkholz
 
Reality Check: How much influence do developers really have?
Reality Check: How much influence do developers really have?Reality Check: How much influence do developers really have?
Reality Check: How much influence do developers really have?
Donnie Berkholz
 
Cloud Native: A dose of reality
Cloud Native: A dose of realityCloud Native: A dose of reality
Cloud Native: A dose of reality
Donnie Berkholz
 
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Cloud Native in the Enterprise: Real-World Data on Container and Microservice...
Donnie Berkholz
 
Mining the Go Developer Community
Mining the Go Developer CommunityMining the Go Developer Community
Mining the Go Developer Community
Donnie Berkholz
 
DevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservicesDevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservices
Donnie Berkholz
 
How the rise of DevOps and containers is transforming IT service delivery
How the rise of DevOps and containers is transforming IT service deliveryHow the rise of DevOps and containers is transforming IT service delivery
How the rise of DevOps and containers is transforming IT service delivery
Donnie Berkholz
 
How IT will disrupt in 2016: The ITaaS imperative
How IT will disrupt in 2016: The ITaaS imperativeHow IT will disrupt in 2016: The ITaaS imperative
How IT will disrupt in 2016: The ITaaS imperative
Donnie Berkholz
 
The OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and PlatformsThe OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and Platforms
Donnie Berkholz
 
Commit yourself already: Contributing to open source
Commit yourself already: Contributing to open sourceCommit yourself already: Contributing to open source
Commit yourself already: Contributing to open source
Donnie Berkholz
 
Microservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyondMicroservices 101: From DevOps to Docker and beyond
Microservices 101: From DevOps to Docker and beyond
Donnie Berkholz
 
Can we compare communities or are they all unique snowflakes?
Can we compare communities or are they all unique snowflakes?Can we compare communities or are they all unique snowflakes?
Can we compare communities or are they all unique snowflakes?
Donnie Berkholz
 
How microservices are redefining modern application architecture
How microservices are redefining modern application architectureHow microservices are redefining modern application architecture
How microservices are redefining modern application architecture
Donnie Berkholz
 
DevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the realityDevOps, containers & microservices: Separating the hype from the reality
DevOps, containers & microservices: Separating the hype from the reality
Donnie Berkholz
 
Emerging trends in software development: The next generation of storage
Emerging trends in software development: The next generation of storageEmerging trends in software development: The next generation of storage
Emerging trends in software development: The next generation of storage
Donnie Berkholz
 
Ad

Recently uploaded (20)

How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
How analogue intelligence complements AI
How analogue intelligence complements AIHow analogue intelligence complements AI
How analogue intelligence complements AI
Paul Rowe
 
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfThe Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdf
Abi john
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
Technology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data AnalyticsTechnology Trends in 2025: AI and Big Data Analytics
Technology Trends in 2025: AI and Big Data Analytics
InData Labs
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
IEDM 2024 Tutorial2_Advances in CMOS Technologies and Future Directions for C...
organizerofv
 
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
Transcript: #StandardsGoals for 2025: Standards & certification roundup - Tec...
BookNet Canada
 
Semantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AISemantic Cultivators : The Critical Future Role to Enable AI
Semantic Cultivators : The Critical Future Role to Enable AI
artmondano
 
Drupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy ConsumptionDrupalcamp Finland – Measuring Front-end Energy Consumption
Drupalcamp Finland – Measuring Front-end Energy Consumption
Exove
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
AI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global TrendsAI and Data Privacy in 2025: Global Trends
AI and Data Privacy in 2025: Global Trends
InData Labs
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Electronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploitElectronic_Mail_Attacks-1-35.pdf by xploit
Electronic_Mail_Attacks-1-35.pdf by xploit
niftliyevhuseyn
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
Build Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For DevsBuild Your Own Copilot & Agents For Devs
Build Your Own Copilot & Agents For Devs
Brian McKeiver
 
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptxDevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
DevOpsDays Atlanta 2025 - Building 10x Development Organizations.pptx
Justin Reock
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 

Package management and creation in Gentoo Linux

  • 1. Package management and creation in Gentoo Linux Donnie Berkholz Council Member & Sr. Developer Gentoo Linux [email protected] @dberkholz
  • 2. Me in Gentoo The old me The new me Blah, blah, blah..
  • 4. Overview Flickr: Liam Quinn
  • 5. Gentoo PM goals • Beautiful and colorful despite CLI • Fully automated software installation • Extremely easy maintenance • Available in most architectures and OS's
  • 6. Gentoo PM goals(con't) • Configuration file protection and automerge • Advantages of compiling from source • Multiple versions/implementations handling • Binary package support
  • 7. Portage features • Customization of CFLAGS, LDFLAGS • USE flags (more on that later) • Various optional FEATURES • Protection for live system • FEATURES sandbox, collision- protect, protect-owned • Compilation acceleration • FEATURES ccache, distcc • System trimming • FEATURES nodoc, noman, noinfo • INSTALL_MASK
  • 8. Portage features (con't) • Parallelization support • --jobs=JOBS --load-average=LOAD • MAKEOPTS='-jN' • FEATURES parallel-fetch • Auto resuming after failure • --keep-going • Blocker automatic solving • com_err and ss V.S. e2fsprogs-libs • Debugging support • CFLAGS "-g3 -ggdb3 -gdwarf-2" • FEATURES keepwork, nostrip, splitdebug, installsources
  • 9. Portage features (con't) • Embedded system support • Features in portage 2.2 • License filtering • Generic package sets • FEATURES preserve-libs
  • 10. Portage tree • Gentoo's software repository • One of the largest • Branches • Overlays
  • 11. Ebuild file • Defines variables and functions used to build/install software • KEYWORDS • SLOT • DEPEND, RDEPEND, PDEPEND • LICENSE, SRC_URI • Functions - src_unpack(), src_compile(), src_install() • Eclasses
  • 12. USE flags • Map onto ./configure options • Defaults defined by profile • Define your own in addition to defaults • Install only what you want • Example: • USE="-gnome kde qt -arts -nls"
  • 13. EAPI: Ebuild API • EAPI 0: Forever... • EAPI 1: Nov 2007 • EAPI 2: Sept 2008 • EAPI 3: Jan 2010 • EAPI 4: Jan 2011 • EAPI 5: Sept 2012
  • 15. EAPI 1 • IUSE defaults • IUSE=+foo • SLOT dependencies • DEPEND=dev-libs/foo:slotname • dev-vcs/statcvs/ statcvs-0.4.0-r1.ebuild
  • 16. EAPI 2 • SRC_URI arrows • http://bar/foo.tar → foo.tar.gz • USE dependencies • DEPEND=dev-libs/foo[flag] • [flag] • [-flag] • [flag=] • [?flag=] • [flag?] • [!flag?] • sci-biology/arb/arb-5.1.ebuild
  • 17. EAPI 2 • Blocker syntax • !dev-libs/foo • !!dev-libs/foo • Granular builds • src_configure() from compile • src_prepare() from unpack • Defaults for phase functions • e.g. default_src_unpack() • Also default() • x11-libs/cairo/cairo- 1.8.10.ebuild
  • 18. EAPI 3 • Prefix support • Unpacking of .xz archives • media-gfx/graphviz/graphviz- 2.26.3-r3.ebuild
  • 19. EAPI 4 • pkg_pretend() • src_install() not empty by default • pkg_info() on uninstalled pkgs • USE dependency defaults • flag+ flag- • For flags not in IUSE • nonfatal prefix for commands • PROPERTIES (=interactive) • dev-vcs/git/git-1.8.1.ebuild
  • 20. EAPI 4 (cont.) • REQUIRED_USE: DEPEND for USE • flag1? (!flag2) • flag1? ( || ( flag2 flag3 ) ) • ^^ ( flag1 flag2 ) • MERGE_TYPE=(source|binary|etc) • REPLACING_VERSIONS, REPLACED_BY_VERSION • dev-db/mongodb/mongodb-2.2.2- r1.ebuild • x11-libs/cairo/cairo- 1.12.8.ebuild
  • 21. EAPI 5 • Sub-slots • Upgrade requires downstream package rebuilds • SLOT=2/2.30 • Slot operator dependencies • DEPEND=dev-libs/foo:* • DEPEND=dev-libs/foo:= • Profile IUSE injection • At-most-one-of USE groups • ?? ( flag1 flag2 ) • x11-wm/xmonad/xmonad-0.11.ebuild
  • 22. EAPI 5 • usex [true1] [false1] [true2] [false2] • true1, false1 default to yes, no • (do|new)header • new* read from stdin • EBUILD_PHASE_FUNC • Current ebuild phase • Stable USE masking/forcing
  • 23. EAPI 6? bugs.gentoo.org/174380 Gentoo Hosted Projects → PMS/EAPI Summary: [Future EAPI] Blocks: future-eapi
  • 24. Package management and creation in Gentoo Linux Donnie Berkholz Council Member & Sr. Developer Gentoo Linux [email protected] @dberkholz
  • 25. <http://dev.gentoo.org/~dberkholz/IntroToGentoo.odp> Copyright 2006–2013 Rajiv Manglani, Zhang Le, Donnie Berkholz. Some rights reserved. The Gentoo Linux logo is Copyright 2002 Gentoo Foundation, used with permission. This work is licensed under the Creative Commons Attribution- NonCommercial-ShareAlike License. To view a copy of this license, visit < http://creativecommons.org/licenses/by-nc-sa/2.0> or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.