SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Gentoo Linux, or
Why in the World You Should
     Compile Everything
            Donnie Berkholz
     Council Member & Sr. Developer
              Gentoo Linux

            dberkholz@gentoo.org
                @dberkholz
Me in Gentoo
How I came to Gentoo
Overview
History
Gentoo features
• Beautiful splash screen, console and
    colorful CLI
•   Fully automated software installation
•   Extremely easy maintenance
•   Available in most architectures and OS's
•   Configuration file protection and automerge
Gentoo features(con't)
• 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 - choose to suit
  your own need through FEATURES variable
• Protection for live system
  • FEATURES sandbox, collision-protect, protect-
    owned
• Compilation speeding up
   • FEATURES ccache, distcc

• System trimming
   • FEATURES nodoc, noman, noinfo
   • INSTALL_MASK
Portage features
                    (con't)
• SMP support
   • emerge --jobs=JOBS --load-average=LOAD
   • MAKEOPTS='-jN', where N is number of processors
     + 1
   • FEATURES parallel-fetch

• Auto resuming after failure whenever
  possible
  • emerge --keep-going

• Blocker automatic solving
   • com_err and ss V.S. e2fsprogs-libs

• Debugging support
   • Adding "-g3 -ggdb3 -gdwarf-2" to CFLAGS
   • 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
• Bleeding edge packages
• Branches
• Overlays
Ebuild file
• Defines variables and functions used to
    compile and 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"
Init system
• OpenRC
• Named run levels (boot, default)
• Smart dependencies
• Parallel startup
• Hotplug/Coldplug
Documentation
• Gentoo Handbook
• Desktop docs
• Upgrade guides
• System admin
• Developer docs
• Project docs
Gentoo Community
• Close contact with end users
• Many ebuilds submitted by users (sunrise
    overlay)
•   IRC
•   Web forums
•   Fully public bug tracking
•   Developers attend FOSS events around the
    world
Stay informed
• Main page - http://www.gentoo.org
• Planet - http://planet.gentoo.org
• Forums - http://forums.gentoo.org
• Gentoo Monthly Newsletter (GMN)
   • http://www.gentoo.org/news/zh_cn/gmn/

• IRC channels
   • http://www.gentoo.org/main/en/irc.xml

• Mailing lists
   • http://www.gentoo.org/main/en/lists.xml

• Packages - http://packages.gentoo.org
• Gentoo Linux Security Announcements
  (GLSA)
Is Gentoo for me?
• If you are lazy
• If you are a perfectionist
• If you like being in control
• If you want a stable and secure system
• If you want to know how a Unix-like
  system works
• If you want to make the most out of your
  hardware
• If you want to make your own distribution
• If you want to install GNU/Linux on your
  PS3 and have it easily, regularly updated
EAPI: Ebuild API
• EAPI 0: Forever...
• EAPI 1: Nov 2007
• EAPI 2: Sept 2008
• EAPI 3: Jan 2010
• EAPI 4: Jan 2011
EAPI: Ebuild API

• 201499: single dependency variable
   • DEPENDENCIES: “run+build: dev-libs/foo”

• 174412: remove EXPORT_FUNCTIONS
   • Should be automated

• 179800: always-called eclass phase
  functions
  • Run something at src_prepare without making
    sure ebuilds call $ECLASS_src_prepare when
    overriding
• 185567: function to package source code
   • Creating custom tarballs from upstream, e.g.

• 186454: move DESCRIPTION to metadata.xml
   • package-wide, not per-ebuild
EAPI: Ebuild API

• 402167: move HOMEPAGE to metadata.xml
• 399019, 399307: move unpacking logic to
  eclasses
  • WIP
  • remove need to dep on proper unpacker

• 354219: zero or one-of for REQUIRED_USE
   • many cases of REQUIRED_USE would benefit from
     a zero-of-or-one-of / at-most-one-of group.
Gentoo Linux, or
Why in the World You Should
     Compile Everything
            Donnie Berkholz
     Council Member & Sr. Developer
              Gentoo Linux

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


Copyright 2006–2012 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.

Weitere ähnliche Inhalte

Was ist angesagt?

SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)ghayour abbas
 
Why Python?
Why Python?Why Python?
Why Python?Adam Pah
 
sap b one production module
sap b one production modulesap b one production module
sap b one production moduleFaisal Mk
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucketjeetendra mandal
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version ControlSourabh Sahu
 
Sentiment classification for product reviews (documentation)
Sentiment classification for product reviews (documentation)Sentiment classification for product reviews (documentation)
Sentiment classification for product reviews (documentation)Mido Razaz
 
20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with pythonSungman Jang
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineeringJennifer Polack
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)ShudipPal
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
Software Size Estimation
Software Size EstimationSoftware Size Estimation
Software Size EstimationMuhammad Asim
 
Python standard library &amp; list of important libraries
Python standard library &amp; list of important librariesPython standard library &amp; list of important libraries
Python standard library &amp; list of important librariesgrinu
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to pythoneShikshak
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git민태 김
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHubVikram SV
 

Was ist angesagt? (20)

SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)SWE-401 - 2. Software Development life cycle (SDLC)
SWE-401 - 2. Software Development life cycle (SDLC)
 
Why Python?
Why Python?Why Python?
Why Python?
 
Compilers
CompilersCompilers
Compilers
 
sap b one production module
sap b one production modulesap b one production module
sap b one production module
 
Difference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs BitbucketDifference between Github vs Gitlab vs Bitbucket
Difference between Github vs Gitlab vs Bitbucket
 
Understanding GIT and Version Control
Understanding GIT and Version ControlUnderstanding GIT and Version Control
Understanding GIT and Version Control
 
Sentiment Analysis
Sentiment AnalysisSentiment Analysis
Sentiment Analysis
 
Sentiment classification for product reviews (documentation)
Sentiment classification for product reviews (documentation)Sentiment classification for product reviews (documentation)
Sentiment classification for product reviews (documentation)
 
20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python20160331_Automate the boring stuff with python
20160331_Automate the boring stuff with python
 
What is software engineering
What is software engineeringWhat is software engineering
What is software engineering
 
Python
PythonPython
Python
 
Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)Software Engineering (Introduction to Software Engineering)
Software Engineering (Introduction to Software Engineering)
 
Subcontracting
SubcontractingSubcontracting
Subcontracting
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 
Software Size Estimation
Software Size EstimationSoftware Size Estimation
Software Size Estimation
 
Python standard library &amp; list of important libraries
Python standard library &amp; list of important librariesPython standard library &amp; list of important libraries
Python standard library &amp; list of important libraries
 
Introduction to python
Introduction to pythonIntroduction to python
Introduction to python
 
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
버전관리를 들어본적 없는 사람들을 위한 DVCS - Git
 
Introduction to Git and GitHub
Introduction to Git and GitHubIntroduction to Git and GitHub
Introduction to Git and GitHub
 

Andere mochten auch

Andere mochten auch (7)

Gentoo linux
Gentoo linuxGentoo linux
Gentoo linux
 
Package management and creation in Gentoo Linux
Package management and creation in Gentoo LinuxPackage management and creation in Gentoo Linux
Package management and creation in Gentoo Linux
 
Assholes are killing your project (FOSDEM)
Assholes are killing your project (FOSDEM)Assholes are killing your project (FOSDEM)
Assholes are killing your project (FOSDEM)
 
Gentoo linux
Gentoo linux Gentoo linux
Gentoo linux
 
Gentoo Linux
Gentoo LinuxGentoo Linux
Gentoo Linux
 
DevOps 101
DevOps 101DevOps 101
DevOps 101
 
Assholes are killing your project
Assholes are killing your projectAssholes are killing your project
Assholes are killing your project
 

Ähnlich wie Gentoo Linux, or Why in the World You Should Compile Everything

Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugSteve Arnold
 
Linux: Everyting-as-a-service
Linux: Everyting-as-a-serviceLinux: Everyting-as-a-service
Linux: Everyting-as-a-serviceRohit Sansiya
 
Docking postgres
Docking postgresDocking postgres
Docking postgresrycamor
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-reviewabinaya m
 
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsBill Malchisky Jr.
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux KernelDocker, Inc.
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at FacebookDavide Cavalca
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)Chris Simmonds
 
Running CentOS on the Facebook fleet
Running CentOS on the Facebook fleetRunning CentOS on the Facebook fleet
Running CentOS on the Facebook fleetDavide Cavalca
 
Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)ClubHack
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxWO Community
 
Up and Running with Freebsd
Up and Running with FreebsdUp and Running with Freebsd
Up and Running with FreebsdGLC Networks
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchHoward Greenberg
 
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?panagenda
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios
 

Ähnlich wie Gentoo Linux, or Why in the World You Should Compile Everything (20)

Intro To Gentoo Embedded Cclug
Intro To Gentoo Embedded CclugIntro To Gentoo Embedded Cclug
Intro To Gentoo Embedded Cclug
 
Linux: Everyting-as-a-service
Linux: Everyting-as-a-serviceLinux: Everyting-as-a-service
Linux: Everyting-as-a-service
 
Linux basics (part 2)
Linux basics (part 2)Linux basics (part 2)
Linux basics (part 2)
 
Docking postgres
Docking postgresDocking postgres
Docking postgres
 
Lec 10-linux-review
Lec 10-linux-reviewLec 10-linux-review
Lec 10-linux-review
 
CentOS at Facebook
CentOS at FacebookCentOS at Facebook
CentOS at Facebook
 
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows AdminsThe Ultimate IBM and Lotus on Linux Workshop for Windows Admins
The Ultimate IBM and Lotus on Linux Workshop for Windows Admins
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
 
CentOS Stream at Facebook
CentOS Stream at FacebookCentOS Stream at Facebook
CentOS Stream at Facebook
 
The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)The end of embedded Linux (as we know it)
The end of embedded Linux (as we know it)
 
Running CentOS on the Facebook fleet
Running CentOS on the Facebook fleetRunning CentOS on the Facebook fleet
Running CentOS on the Facebook fleet
 
Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)Metasploitation part-1 (murtuja)
Metasploitation part-1 (murtuja)
 
Deployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS LinuxDeployment of WebObjects applications on CentOS Linux
Deployment of WebObjects applications on CentOS Linux
 
Up and Running with Freebsd
Up and Running with FreebsdUp and Running with Freebsd
Up and Running with Freebsd
 
Linux
LinuxLinux
Linux
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
Engage 2020 - Kubernetes for HCL Connections Component Pack - Build or Buy?
 
Database Firewall with Snort
Database Firewall with SnortDatabase Firewall with Snort
Database Firewall with Snort
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
Nagios Conference 2014 - Spenser Reinhardt - Detecting Security Breaches With...
 

Mehr von 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 - HeavybitDonnie 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 CompanyDonnie 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 CompanyDonnie Berkholz
 
Discovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWTDiscovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWTDonnie 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 realityDonnie 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 CommunityDonnie Berkholz
 
DevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservicesDevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservicesDonnie 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 deliveryDonnie 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 imperativeDonnie Berkholz
 
The OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and PlatformsThe OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and PlatformsDonnie 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 sourceDonnie 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 beyondDonnie 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 architectureDonnie 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 realityDonnie 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 storageDonnie Berkholz
 
Building with containers: How containers will drive cloud services
Building with containers: How containers will drive cloud servicesBuilding with containers: How containers will drive cloud services
Building with containers: How containers will drive cloud servicesDonnie Berkholz
 

Mehr von 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
 
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
 
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
 
Discovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWTDiscovering rivers & building bridges: DevOps @ CWT
Discovering rivers & building bridges: DevOps @ CWT
 
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)
 
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?
 
Cloud Native: A dose of reality
Cloud Native: A dose of realityCloud Native: A dose of reality
Cloud Native: A dose of reality
 
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...
 
Mining the Go Developer Community
Mining the Go Developer CommunityMining the Go Developer Community
Mining the Go Developer Community
 
DevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservicesDevOps 101+: From collaboration to microservices
DevOps 101+: From collaboration to microservices
 
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
 
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
 
The OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and PlatformsThe OpenStack Pulse: Containers and Platforms
The OpenStack Pulse: Containers and Platforms
 
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
 
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
 
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?
 
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
 
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
 
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
 
Building with containers: How containers will drive cloud services
Building with containers: How containers will drive cloud servicesBuilding with containers: How containers will drive cloud services
Building with containers: How containers will drive cloud services
 

Kürzlich hochgeladen

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 

Kürzlich hochgeladen (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 

Gentoo Linux, or Why in the World You Should Compile Everything

  • 1. Gentoo Linux, or Why in the World You Should Compile Everything Donnie Berkholz Council Member & Sr. Developer Gentoo Linux dberkholz@gentoo.org @dberkholz
  • 3. How I came to Gentoo
  • 6. Gentoo features • Beautiful splash screen, console and colorful CLI • Fully automated software installation • Extremely easy maintenance • Available in most architectures and OS's • Configuration file protection and automerge
  • 7. Gentoo features(con't) • Advantages of compiling from source • Multiple versions/implementations handling • Binary package support
  • 8. Portage features • Customization of CFLAGS, LDFLAGS • USE flags (more on that later) • Various optional features - choose to suit your own need through FEATURES variable • Protection for live system • FEATURES sandbox, collision-protect, protect- owned • Compilation speeding up • FEATURES ccache, distcc • System trimming • FEATURES nodoc, noman, noinfo • INSTALL_MASK
  • 9. Portage features (con't) • SMP support • emerge --jobs=JOBS --load-average=LOAD • MAKEOPTS='-jN', where N is number of processors + 1 • FEATURES parallel-fetch • Auto resuming after failure whenever possible • emerge --keep-going • Blocker automatic solving • com_err and ss V.S. e2fsprogs-libs • Debugging support • Adding "-g3 -ggdb3 -gdwarf-2" to CFLAGS • FEATURES keepwork, nostrip, splitdebug, installsources
  • 10. Portage features (con't) • Embedded system support • Features in portage 2.2 • License filtering • Generic package sets • FEATURES preserve-libs
  • 11. Portage tree • Gentoo's software repository • One of the largest • Bleeding edge packages • Branches • Overlays
  • 12. Ebuild file • Defines variables and functions used to compile and install software • KEYWORDS • SLOT • DEPEND, RDEPEND, PDEPEND • LICENSE • SRC_URI • Functions - src_unpack(), src_compile(), src_install() • Eclasses
  • 13. 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"
  • 14. Init system • OpenRC • Named run levels (boot, default) • Smart dependencies • Parallel startup • Hotplug/Coldplug
  • 15. Documentation • Gentoo Handbook • Desktop docs • Upgrade guides • System admin • Developer docs • Project docs
  • 16. Gentoo Community • Close contact with end users • Many ebuilds submitted by users (sunrise overlay) • IRC • Web forums • Fully public bug tracking • Developers attend FOSS events around the world
  • 17. Stay informed • Main page - http://www.gentoo.org • Planet - http://planet.gentoo.org • Forums - http://forums.gentoo.org • Gentoo Monthly Newsletter (GMN) • http://www.gentoo.org/news/zh_cn/gmn/ • IRC channels • http://www.gentoo.org/main/en/irc.xml • Mailing lists • http://www.gentoo.org/main/en/lists.xml • Packages - http://packages.gentoo.org • Gentoo Linux Security Announcements (GLSA)
  • 18. Is Gentoo for me? • If you are lazy • If you are a perfectionist • If you like being in control • If you want a stable and secure system • If you want to know how a Unix-like system works • If you want to make the most out of your hardware • If you want to make your own distribution • If you want to install GNU/Linux on your PS3 and have it easily, regularly updated
  • 19. EAPI: Ebuild API • EAPI 0: Forever... • EAPI 1: Nov 2007 • EAPI 2: Sept 2008 • EAPI 3: Jan 2010 • EAPI 4: Jan 2011
  • 20. EAPI: Ebuild API • 201499: single dependency variable • DEPENDENCIES: “run+build: dev-libs/foo” • 174412: remove EXPORT_FUNCTIONS • Should be automated • 179800: always-called eclass phase functions • Run something at src_prepare without making sure ebuilds call $ECLASS_src_prepare when overriding • 185567: function to package source code • Creating custom tarballs from upstream, e.g. • 186454: move DESCRIPTION to metadata.xml • package-wide, not per-ebuild
  • 21. EAPI: Ebuild API • 402167: move HOMEPAGE to metadata.xml • 399019, 399307: move unpacking logic to eclasses • WIP • remove need to dep on proper unpacker • 354219: zero or one-of for REQUIRED_USE • many cases of REQUIRED_USE would benefit from a zero-of-or-one-of / at-most-one-of group.
  • 22. Gentoo Linux, or Why in the World You Should Compile Everything Donnie Berkholz Council Member & Sr. Developer Gentoo Linux dberkholz@gentoo.org @dberkholz
  • 23. <http://dev.gentoo.org/~dberkholz/IntroToGentoo.odp> Copyright 2006–2012 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.

Hinweis der Redaktion

  1. Gentoo – the fastest swimming penguin Based either on Linux, FreeBSD, etc Source-based metadistribution Can be optimized and customized for any purpose Extremely configurable, portable, easy-to-maintain All volunteer, active developer community Is and will always be Free Software Commitment to giving back to the FOSS community
  2. Started by Daniel Robbins with the name &amp;quot;Enoch&amp;quot; in 1999 Changed name to &amp;quot;Gentoo&amp;quot; later due to speed increase as a result of EGCS adoption Portage - the next generation ports – born after a detour to FreeBSD Gentoo Linux 1.0 released on 2002/03/31 Gentoo Foundation set up in 2004 to take care of financial issue and protect intellectual property Gentoo Council decides on global issues and policies
  3. Beautiful splash screen, console and colorful CLI Fully automated software installation Dependency solving and fulfillment Source fetching, patching, compiling, installing Extremely easy maintenance &apos;system&apos; and &apos;world&apos; package set keep &apos;world&apos; up-to-date with a single command versionless, seamless upgrading Available in most architectures and OS&apos;s amd64, alpha, arm, hppa, ia64, mips, ppc, sparc, x86 other Linux distros, Mac OS X, Solaris, FreeBSD, AIX, Interix Configuration file protection and automerge
  4. Advantages of compiling from source Optimized for your own CPU DIY as soon as new software release is out Even if not released yet - live ebuilds (cvs/svn/git...)‏ Multiple versions/implementations handling coexist along with each other peacefully switch on-the-fly mechanisms - software slots, virtual package tools - eselect , gcc-config, binutils-config, java-config Binary package support Native binary package format &amp; repositories Alien binary package format support, e.g. rpm, deb. Upstream binary package: openoffice-bin, mozilla-firefox-bin
  5. Embedded system support crossdev - create any arbitrary cross toolchain in one command First set CBUILD, PORTAGE_CONFIGROOT and ROOT properly Then just emerge! Features in portage 2.2 License filtering Generic package sets @live-rebuild - all live ebuilds installed on your system @module-rebuild - all out-of-tree kernel module FEATURES preserve-libs preserve old lib after lib version bump emerge @preserved-rebuild to remove old lib and link apps to new lib
  6. Gentoo&apos;s software repository One of the largest in terms of number of packages No split packages, i.e. foo-devel, -headers Provide non-free software, e.g. adobe flash player/reader Bleeding edge packages Branches - stable, testing Defined your global choice in /etc/make.conf Tweak for each package in /etc/portage/package.keywords Overlays - a subset of tree with higher priority GNOME, KDE, toolchain, x11.... managed by &amp;quot;layman&amp;quot;
  7. Defines variables and functions used to compile and install software KEYWORDS - define branch for this package SLOT - mechanism for multiple version coexistence DEPEND, RDEPEND, PDEPEND - Build time, Runtime, Post-merge dependencies LICENSE - the software license SRC_URI - where to get sources Function - src_unpack(), src_compile(), src_install() Eclass - ebuild&apos;s library
  8. Gentoo&apos;s way to customize software components USE flags generally map onto ./configure options Defaults defined by profile /etc/make.profile Define your own in addition to defaults Global flags in /etc/make.conf Package specific flags in /etc/portage/package.use Install only what you want Example: USE=&amp;quot;-gnome kde qt -arts -nls&amp;quot;
  9. OpenRC, written in C and POSIX-compliant shell script, for compatibility with Gentoo on FreeBSD and embedded systems. Named run levels (boot, default)‏ Smart dependencies Scripts can &apos;use&apos; or &apos;need&apos; others. Scripts can start &apos;before&apos; or &apos;after&apos; others. Parallel startup option Hotplug/Coldplug services
  10. Gentoo Handbook (install, embedded, security...)‏ Desktop docs (X, nVidia/ATI, GNOME, KDE, fluxbox, xfce, alsa, DRI, power management...)‏ Upgrade Guide (kernel, gcc, apache, MySQL, PHP...)‏ System admin (security handbook, localization, cron, sudo, kernel, prelink, distcc, mail server, database, web server, virtualization...)‏ Developer docs (dev handbook, devmanual)‏ Project docs (Gentoo projects operation)‏
  11. Close contact with end users Many ebuilds submitted by users (sunrise overlay) IRC channels (irc.gentoo.org, currently an alias to freenode), #gentoo is one of the largest on the network with an average of 900+ users. Web-based forums (on forums.gentoo.org), 5,495,131 posts, 1500+ posts per day. Fully public bug tracking (bugs.gentoo.org) Developers attend FOSS events around the world