Portage - the Current Implementation the Future Conclusion
Total Page:16
File Type:pdf, Size:1020Kb
Package Managing in General Portage - The Current Implementation The Future Conclusion Portage - A modern package manager Marius Mauch <[email protected]> FOSDEM 2005 Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Outline Package Managing in General Portage - The Current Implementation Features The Portage Tree The Future Short Term Long Term Conclusion Portage - A modern package manager Marius Mauch <[email protected]> • More general: • Payload: actual source or binary files • Metadata: descriptive information (homepage, dependencies, ...) • Instructions: build and install scripts • Different kind of packages: binary vs. source (vs. installed) • Common formats: Tarball, RPM Package Managing in General Portage - The Current Implementation The Future Conclusion What is a Package? • Simplest case: tarball of files Portage - A modern package manager Marius Mauch <[email protected]> • Different kind of packages: binary vs. source (vs. installed) • Common formats: Tarball, RPM Package Managing in General Portage - The Current Implementation The Future Conclusion What is a Package? • Simplest case: tarball of files • More general: • Payload: actual source or binary files • Metadata: descriptive information (homepage, dependencies, ...) • Instructions: build and install scripts Portage - A modern package manager Marius Mauch <[email protected]> • Common formats: Tarball, RPM Package Managing in General Portage - The Current Implementation The Future Conclusion What is a Package? • Simplest case: tarball of files • More general: • Payload: actual source or binary files • Metadata: descriptive information (homepage, dependencies, ...) • Instructions: build and install scripts • Different kind of packages: binary vs. source (vs. installed) Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion What is a Package? • Simplest case: tarball of files • More general: • Payload: actual source or binary files • Metadata: descriptive information (homepage, dependencies, ...) • Instructions: build and install scripts • Different kind of packages: binary vs. source (vs. installed) • Common formats: Tarball, RPM Portage - A modern package manager Marius Mauch <[email protected]> • Dependency handling • Searching for packages • Querying metadata from packages • Conversion between package formats Package Managing in General Portage - The Current Implementation The Future Conclusion Tasks of a Package Manager • Installation and removal of packages Portage - A modern package manager Marius Mauch <[email protected]> • Searching for packages • Querying metadata from packages • Conversion between package formats Package Managing in General Portage - The Current Implementation The Future Conclusion Tasks of a Package Manager • Installation and removal of packages • Dependency handling Portage - A modern package manager Marius Mauch <[email protected]> • Querying metadata from packages • Conversion between package formats Package Managing in General Portage - The Current Implementation The Future Conclusion Tasks of a Package Manager • Installation and removal of packages • Dependency handling • Searching for packages Portage - A modern package manager Marius Mauch <[email protected]> • Conversion between package formats Package Managing in General Portage - The Current Implementation The Future Conclusion Tasks of a Package Manager • Installation and removal of packages • Dependency handling • Searching for packages • Querying metadata from packages Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Tasks of a Package Manager • Installation and removal of packages • Dependency handling • Searching for packages • Querying metadata from packages • Conversion between package formats Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Existing Package Managers • RPM - Redhat, Suse, Mandrake, ... • dpkg - Debian • Portage - Gentoo • Ports - FreeBSD, OpenBSD, NetBSD • MSI - Windows • ... Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Outline Package Managing in General Portage - The Current Implementation Features The Portage Tree The Future Short Term Long Term Conclusion Portage - A modern package manager Marius Mauch <[email protected]> • Abstraction over ./configure arguments • USE flags can define optional dependencies • Example: USE=ssl • Enables optional OpenSSL support in all packages • Adds OpenSSL as additional dependency Package Managing in General Portage - The Current Implementation The Future Conclusion Features USE Flags • Specify optional behavior Portage - A modern package manager Marius Mauch <[email protected]> • USE flags can define optional dependencies • Example: USE=ssl • Enables optional OpenSSL support in all packages • Adds OpenSSL as additional dependency Package Managing in General Portage - The Current Implementation The Future Conclusion Features USE Flags • Specify optional behavior • Abstraction over ./configure arguments Portage - A modern package manager Marius Mauch <[email protected]> • Example: USE=ssl • Enables optional OpenSSL support in all packages • Adds OpenSSL as additional dependency Package Managing in General Portage - The Current Implementation The Future Conclusion Features USE Flags • Specify optional behavior • Abstraction over ./configure arguments • USE flags can define optional dependencies Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Features USE Flags • Specify optional behavior • Abstraction over ./configure arguments • USE flags can define optional dependencies • Example: USE=ssl • Enables optional OpenSSL support in all packages • Adds OpenSSL as additional dependency Portage - A modern package manager Marius Mauch <[email protected]> • Each package can have multiple versions available • Current version selected by user configuration • Influencing factors: platform, base profile, branch, global mask list • Manual selection also possible Package Managing in General Portage - The Current Implementation The Future Conclusion Features The Concept of Masking • Only one repository for all branches and versions Portage - A modern package manager Marius Mauch <[email protected]> • Current version selected by user configuration • Influencing factors: platform, base profile, branch, global mask list • Manual selection also possible Package Managing in General Portage - The Current Implementation The Future Conclusion Features The Concept of Masking • Only one repository for all branches and versions • Each package can have multiple versions available Portage - A modern package manager Marius Mauch <[email protected]> • Influencing factors: platform, base profile, branch, global mask list • Manual selection also possible Package Managing in General Portage - The Current Implementation The Future Conclusion Features The Concept of Masking • Only one repository for all branches and versions • Each package can have multiple versions available • Current version selected by user configuration Portage - A modern package manager Marius Mauch <[email protected]> • Manual selection also possible Package Managing in General Portage - The Current Implementation The Future Conclusion Features The Concept of Masking • Only one repository for all branches and versions • Each package can have multiple versions available • Current version selected by user configuration • Influencing factors: platform, base profile, branch, global mask list Portage - A modern package manager Marius Mauch <[email protected]> Package Managing in General Portage - The Current Implementation The Future Conclusion Features The Concept of Masking • Only one repository for all branches and versions • Each package can have multiple versions available • Current version selected by user configuration • Influencing factors: platform, base profile, branch, global mask list • Manual selection also possible Portage - A modern package manager Marius Mauch <[email protected]> • Check repository for current version of gphoto2 • Automatically install all dependencies of gphoto2 • Download, compile and install gphoto-2.1.5.tar.gz • Example: emerge gphoto2 • Same tool to update the repository: emerge sync Package Managing in General Portage - The Current Implementation The Future Conclusion Features Emerge - The Convenient User Interface • One command to search, download, build, install, uninstall Portage - A modern package manager Marius Mauch <[email protected]> • Check repository for current version of gphoto2 • Automatically install all dependencies of gphoto2 • Download, compile and install gphoto-2.1.5.tar.gz • Same tool to update the repository: emerge sync Package Managing in General Portage - The Current Implementation The Future Conclusion Features Emerge - The Convenient User Interface • One command to search, download, build, install, uninstall • Example: emerge gphoto2 Portage - A modern package manager Marius Mauch <[email protected]> • Automatically install all dependencies of gphoto2 • Download, compile and install gphoto-2.1.5.tar.gz • Same tool to update