2004 USENIX Annual Technical Conference

Total Page:16

File Type:pdf, Size:1020Kb

2004 USENIX Annual Technical Conference USENIX Association Proceedings of the FREENIX Track: 2004 USENIX Annual Technical Conference Boston, MA, USA June 27–July 2, 2004 © 2004 by The USENIX Association All Rights Reserved For more information about the USENIX Association: Phone: 1 510 528 8649 FAX: 1 510 548 5738 Email: [email protected] WWW: http://www.usenix.org Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. The NetBSD Update System Alistair Crooks, The NetBSD Project 9th April 2004 Abstract driving force behind the use of pkgsrc or NetBSD - rather, this is a description of a facility which is This paper explains the needs for a binary patch and used in NetBSD and which can be used on any other update system, and explains the background and im- operating system to augment the standard facilities plementation of NetBSD-update, a binary update fa- which are in place. cility for NetBSD. The implementation is then anal- ysed, and some lessons drawn for others who may be interested in implementing their own binary up- Driving Forces for a Binary Patch and date system using the NetBSD pkgsrc tools, which Update System are available for many operating systems and envi- ronments already. It is now common to nd rewalls in large and small organisations, preventing malign access, and protect- ing the organisation from intrusion and other attacks. The NetBSD Binary Update Sys- It would not be prudent to have a C compiler in- tem stalled on such a machine - its use should be that of a gatekeeper, as a bouncer with an attitude, keep- Unix, Linux and the BSD operating systems have ing anything suspicious out, and not allowing anyone traditionally been distributed in source format, and who does manage to penetrate the defences to use users and administrators have had a long tradition any tools to break further into the infrastructure. of compiling utilities and applications from source. In addition to these instances, it is very unusual to Over time, however, vendors have moved towards a nd users (as opposed to administrators, or people binary-only distribution mechanism, removing vari- who work in the industry) who would know what ous parts of the system in the process, such as the C to do with a source distribution. Email to various compiler, and other necessary tools. It is only over mailing lists proves this point - to the majority of the last decade that the rise of Linux and the BSD users out there, the computer is a tool, not a thing operating systems have placed the emphasis back on of beauty. source code, and even then, most versions of the op- It is also common to nd vulnerabilities in oper- erating systems are installed from a binary distribu- ating systems, libraries, and utilities which have al- tion. ready been deployed. To ll such holes, a patching This paper describes the NetBSD update sys- system needs to be used - the vulnerable code is re- tem, which has been implemented on and for the placed by code which is not vulnerable. This must NetBSD operating system http://www.netbsd.org/ be done by means of updating the binaries. using the packaging tools from the NetBSD Packages Embedded systems must also be examined in light Collection (pkgsrc) http://www.pkgsrc.org/. of the vulnerabilities found in MTAs, network time Other vendors and operating systems have binary servers, IP ltering software, operating system soft- update facilities in place - their existence is not the ware, and anything else which is included as part of 1 the embedded system, and which can be used to facil- The RedHat network http://www.redhat.com/ itate an attack on an organisation or individual - the provides a commercial service for RedHat Linux sys- whole infrastructure is only as strong as the weakest tems. link in the defences, and one breach renders the rest Sun Microsystems http://www.sun.com/ provides of those defences useless. a number of binary updates via its SunSolve facility It is not feasible to expect that all the vulnera- for its Solaris operating environment. bilities can be found and protected ahead of time - The NetBSD Packages Collection http://www. new ones are being found every day - and so there pkgsrc.org/ has an audit-packages package which must be a mechanism available by which new bina- is used to notify the user when packages which are ries can be used to overwrite vulnerable ones. This installed on the host system have been found to have paper examines all the issues involved in the design security exploits or vulnerabilities. A central list and deployment of such a system. is maintained by the security-ocer and other de- It can take some time for an advisory to be re- velopers, and stored on one of the NetBSD project ceived, investigated, researched, xed, and then pub- servers. The user is encouraged to run the download- licised - the binary update facility can be viewed as a vulnerability-list as part of the periodical jobs on more reliable form of communication of the exploit or a host system by means of the crontab(8) facility. vulnerability than reading the Bugtraq or Full Dis- This script will download the list of vulnerabilities closure mailing lists. from the central server. Output from the download- Some vendors wish users and administrators to pay vulnerability-list script looks is reproduced in the for the added service which a binary update facility Figure download-vulnerability-le output. provides. Whilst the NetBSD binary update system A separate script, called audit-packages simply is not intended to prevent vendors charging for this runs through each of the entries in the list of vulnera- service, some people are unhappy and unwilling to bilities, and checks against each of the vulnerabilities pay for a binary update system. for an installed package on the system with a version number that is vulnerable. If there is, then a warning Related Systems message will be printed, with relevant information, as shown in Figure audit-packages. The one immediate piece of software to which The vulnerabilities le is split into 3 columns. Each everyone refers when talking about binary up- line of the le describes a new vulnerability. Com- dates is the Windows Update Facility http://v4. ments start with the '#' character. The rst column windowsupdate.microsoft.com/en/default.asp. is the vulnerable package versions; the second column It has three separate facilities - update check (for is the type of vulnerability, and the nal column is a new upgrades), update download, and update instal- URL related to the vulnerability. lation, and Windows XP computers can be set to Some typical entries from the vulnerabilities list perform the check, the check and download, and all are shown in the Figure pkg-vulnerabilities le. three parts automatically. Windows Update is based The audit-packages package works very eectively around a web front end - all the used has to do is to in practice, having ironed out a few loose ends in its specify (the rst time Windows Update is run) how implementation. From the start, the vulnerability list they would like their system to check for updates - has been advertised that it will only grow - old vul- and everything is very easy from an end-user point nerabilities will be retained just in case. This has of view. proved dicult to implement - occasionally URLs will Debian Linux http://security.debian.org/ has be found to be out of date, or better ones identied. a security update feature which uses its apt system Once a user with a shorter username xed two trans- to provide binary patches for Debian Linux systems. posed characters in a comment, thereby causing the The FreeBSD project http://www.freebsd. size of the vulnerabilities list to decrease. In time, org/are working on their own binary update system. it was found better to have an embedded SHA1 di- 2 gest, which is used to ascertain correct tranmission The author has some experience with the pack- of the vulnerabilities list, and that no truncation has aging tools as used in the NetBSD packages collec- occurred in transit, as well as ensuring that the le tion, and certain facilities used in these tools would has not been modied in any way. be needed in the binary update facility itself. Using NetBSD also has ne-grained system packages, version numbers which could be compared rationally which can be used as an alternative to the traditional with each other, and using the tools themselves to BSD sets method of installing or upgrading systems. add, backup and delete les, directories and other System packages are usually made up of three sub- le system entries are essential in providing a useful packages: utility which does not try to do any more than it needs to do. • the binaries, Implementation of the NetBSD Update the manual pages, • System and any example or support les. • The implementation of the NetBSD update system is done as in the Windows and Debian updates - the The NetBSD Update System does not use any of the binary updates can be set to inform of new updates, facilities of system packages - on non-NetBSD sys- to inform and download, and to inform, download tems, it is likely that system packages would clash and install the updates automatically. with traditional methods of installing and updating The NetBSD packages collection tools are used systems, and so a separate mechanism was used to to perform the binary update work - these tools implement the NetBSD Update System.
Recommended publications
  • Debian Installation Manual
    Powered by Universal Speech Solutions LLC MRCP Deb Installation Manual Administrator Guide Revision: 70 Created: February 7, 2015 Last updated: March 15, 2021 Author: Arsen Chaloyan Powered by Universal Speech Solutions LLC | Overview 1 Table of Contents 1 Overview ............................................................................................................................................... 3 1.1 Applicable Versions ............................................................................................................ 3 1.2 Supported Distributions ...................................................................................................... 3 1.3 Authentication ..................................................................................................................... 3 2 Installing Deb Packages Using Apt-Get ............................................................................................... 4 2.1 Repository Configuration ................................................................................................... 4 2.2 GnuPG Key ......................................................................................................................... 4 2.3 Repository Update .............................................................................................................. 4 2.4 UniMRCP Client Installation .............................................................................................. 5 2.5 UniMRCP Server Installation ............................................................................................
    [Show full text]
  • GNU Guix Cookbook Tutorials and Examples for Using the GNU Guix Functional Package Manager
    GNU Guix Cookbook Tutorials and examples for using the GNU Guix Functional Package Manager The GNU Guix Developers Copyright c 2019 Ricardo Wurmus Copyright c 2019 Efraim Flashner Copyright c 2019 Pierre Neidhardt Copyright c 2020 Oleg Pykhalov Copyright c 2020 Matthew Brooks Copyright c 2020 Marcin Karpezo Copyright c 2020 Brice Waegeneire Copyright c 2020 Andr´eBatista Copyright c 2020 Christine Lemmer-Webber Copyright c 2021 Joshua Branson Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled \GNU Free Documentation License". i Table of Contents GNU Guix Cookbook ::::::::::::::::::::::::::::::: 1 1 Scheme tutorials ::::::::::::::::::::::::::::::::: 2 1.1 A Scheme Crash Course :::::::::::::::::::::::::::::::::::::::: 2 2 Packaging :::::::::::::::::::::::::::::::::::::::: 5 2.1 Packaging Tutorial:::::::::::::::::::::::::::::::::::::::::::::: 5 2.1.1 A \Hello World" package :::::::::::::::::::::::::::::::::: 5 2.1.2 Setup:::::::::::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.1 Local file ::::::::::::::::::::::::::::::::::::::::::::: 8 2.1.2.2 `GUIX_PACKAGE_PATH' ::::::::::::::::::::::::::::::::: 9 2.1.2.3 Guix channels ::::::::::::::::::::::::::::::::::::::: 10 2.1.2.4 Direct checkout hacking:::::::::::::::::::::::::::::: 10 2.1.3 Extended example ::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Functional Package and Configuration Management with GNU Guix
    Functional Package and Configuration Management with GNU Guix David Thompson Wednesday, January 20th, 2016 About me GNU project volunteer GNU Guile user and contributor since 2012 GNU Guix contributor since 2013 Day job: Ruby + JavaScript web development / “DevOps” 2 Overview • Problems with application packaging and deployment • Intro to functional package and configuration management • Towards the future • How you can help 3 User autonomy and control It is becoming increasingly difficult to have control over your own computing: • GNU/Linux package managers not meeting user needs • Self-hosting web applications requires too much time and effort • Growing number of projects recommend installation via curl | sudo bash 1 or otherwise avoid using system package managers • Users unable to verify that a given binary corresponds to the source code 1http://curlpipesh.tumblr.com/ 4 User autonomy and control “Debian and other distributions are going to be that thing you run Docker on, little more.” 2 2“ownCloud and distribution packaging” http://lwn.net/Articles/670566/ 5 User autonomy and control This is very bad for desktop users and system administrators alike. We must regain control! 6 What’s wrong with Apt/Yum/Pacman/etc.? Global state (/usr) that prevents multiple versions of a package from coexisting. Non-atomic installation, removal, upgrade of software. No way to roll back. Nondeterminstic package builds and maintainer-uploaded binaries. (though this is changing!) Reliance on pre-built binaries provided by a single point of trust. Requires superuser privileges. 7 The problem is bigger Proliferation of language-specific package managers and binary bundles that complicate secure system maintenance.
    [Show full text]
  • NET Core on Linux
    BROUGHT TO YOU IN PARTNERSHIP WITH 237 Installing on Linux Open Source Repositories The Layers of .NET Core .NET Core on Linux dotnet Commands BY DON SCHENCK CONTENTS Tag Helpers... and more! DZone.com/Refcardz ANY DEVELOPER, ANY APP, ANY PLATFORM RED HAT ENTERPRISE LINUX 7 SERVER (64 BIT) Visit When .NET made its debut in 2002, it supported subscription-manager list --available multiple languages, including C\# and Visual Basic (get the Pool Id to be used in the next step) (VB). Over the years, many languages have been added subscription-manager attach --pool=<Pool Id> subscription-manager repos --enable=rhel-7-server-dotnet-rpms to the .NET Framework. Because .NET Core is a new yum install scl-utils development effort, language support must be re-in yum install rh-dotnet20 echo ‘source scl_source enable rh-dotnet20’ >>~/.bashrc This refcard will guide you along the path to being scl enable rh-dotnet20 bash productive using .NET Core on Linux, from installation UBUNTU 14.04 / LINUX MINT 17 (64 BIT) Get More Refcardz! to debugging. Information is available to help you find documentation and discussions related to .NET sudo sh -c 'echo "deb [arch=amd64] https://apt-mo. Core. An architectural overview is presented, as well trafficmanager.net/repos/dotnet-release/ trusty main" > / as tips for using the new Command Line Interface etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver apt-mo.trafficmanager.net (CLI). Building MVC web sites, RESTful services and --recv-keys 417A0893 standalone applications are also covered. Finally, sudo apt-get update some tools and helpful settings are discussed as they relate to your development efforts.
    [Show full text]
  • Open Data User Guide.Pdf
    PARTICIPANT’S GUIDE Virtual Machine Connection Details Hostname: hackwe1.cs.uwindsor.ca Operating System: Debian 6.0 (“Squeeze”) IP Address: 137.207.82.181 Middleware: Node.js, Perl, PHP, Python DBMS: MySQL, PostgreSQL Connection Type: SSH Web Server: Apache 2.2 UserID: root Available Text Editors: nano, vi Password: Nekhiav3 UserID: hackwe Feel free to install additional packages or tools. Password: Imusyeg6 Google Maps API Important Paths and Links Follow this quick tutorial to get started Home Directory https://developers.google.com/maps/documentation/javascript/tutorial /home/hackwe The most common objects you will use are LatLng objects which store a lati- tude and longitude, and Marker objects which place a point on a Map object APT Package Management Tool help.ubuntu.com/community/AptGet/Howto LatLng Object developers.google.com/maps/documentation/javascript/reference#LatLng City of Windsor Open Data Catalogue Marker Object www.citywindsor.ca/opendata/Pages/Open-Data- developers.google.com/maps/documentation/javascript/reference#Marker Catalogue.aspx Map Object Windsor Hackforge developers.google.com/maps/documentation/javascript/reference#Map hackf.org WeTech Alliance wetech-alliance.com XKCD xkcd.com PARTICIPANT’S GUIDE Working with Geospatial (SHP) Data in Linux Node.js Python To manipulate shape files in Python 2.x, you’ll need the pyshp package. These Required Libraries instructions will quickly outline how to install and use this package to get GIS data out of *.shp files. node-shp: Github - https://github.com/yuletide/node-shp Installation npm - https://npmjs.org/package/shp To install pyshp you first must have setuptools installed in your python site- packages.
    [Show full text]
  • 1. Install Homebrew 2. Install Cmake 3. Build and Run the Opengl Program
    NYU Tandon School of Engineering CS6533/CS4533 Zebin Xu [email protected] Compiling OpenGL Programs on macOS or Linux using CMake This tutorial explains how to compile OpenGL programs on macOS using CMake – a cross-platform tool for managing the build process of software using a compiler- independent method. On macOS, OpenGL and GLUT are preinstalled; GLEW is not needed as we will use the core profile of OpenGL 3.2 later when we use shaders; Xcode is not required unless you prefer programming in an IDE. At the end we also discuss how to compile on Linux. Contents/Steps: 1. Install Homebrew 2. Install CMake via Homebrew 3. Build and run the OpenGL program 3.1 Build via the command line by generating Unix Makefiles (without Xcode) 3.2 Build via the Xcode IDE by generating an Xcode project (so that you can write your code in Xcode if you have it installed) 4. Compilation on Linux 5. Notes 1. Install Homebrew Homebrew is a pacKage manager for macOS. If you have installed Homebrew before, sKip this step. To install Homebrew, simply paste the command from https://brew.sh into your terminal and run. Once you have installed Homebrew, type “brew” in your terminal to checK if it’s installed. We will use Homebrew to install CMake. 2. Install CMaKe I strongly suggest installing CMake via Homebrew as it will also picK up any related missing pacKages during installation (such as installing a needed command line tool for Xcode even if you don’t have Xcode). If you have installed CMake, just sKip this step.
    [Show full text]
  • Debian Packaging Tutorial
    Debian Packaging Tutorial Lucas Nussbaum [email protected] version 0.27 – 2021-01-08 Debian Packaging Tutorial 1 / 89 About this tutorial I Goal: tell you what you really need to know about Debian packaging I Modify existing packages I Create your own packages I Interact with the Debian community I Become a Debian power-user I Covers the most important points, but is not complete I You will need to read more documentation I Most of the content also applies to Debian derivative distributions I That includes Ubuntu Debian Packaging Tutorial 2 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 3 / 89 Outline 1 Introduction 2 Creating source packages 3 Building and testing packages 4 Practical session 1: modifying the grep package 5 Advanced packaging topics 6 Maintaining packages in Debian 7 Conclusions 8 Additional practical sessions 9 Answers to practical sessions Debian Packaging Tutorial 4 / 89 Debian I GNU/Linux distribution I 1st major distro developed “openly in the spirit of GNU” I Non-commercial, built collaboratively by over 1,000 volunteers I 3 main features: I Quality – culture of technical excellence We release when it’s ready I Freedom – devs and users bound by the Social Contract Promoting the culture of Free Software since 1993 I Independence – no (single)
    [Show full text]
  • Beginning System Administration Decal
    Review Installing Software Debian GNU/Linux Beginning System Administration DeCal Week 6 March 03, 2009 Week 6 Beginning System Administration DeCal Review Installing Software Debian GNU/Linux Review So Far... (hopefully) History of UNIX Design choices Terminal, shell, and interaction with UNIX Foundation of the Internet Using UNIX Users and Permissions Account management (add/del/disable users) File system layout Week 6 Beginning System Administration DeCal Review Installing Software Debian GNU/Linux Review So Far... (cont.) Software Downloading and extracting packages ( wget, tar, gzip) Configuring and compiling (./configure, make, make install) Configuration (.conf files, /etc) Week 6 Beginning System Administration DeCal Review Considerations Installing Software Package Managers Debian GNU/Linux Software Two options: 1 compile from source 2 download and install from binaries download binaries manually use a package management system How about both? When to choose which? Software release cycle Security and feature patches Week 6 Beginning System Administration DeCal Review Considerations Installing Software Package Managers Debian GNU/Linux What’s the single biggest advancement Linux has brought to the industry? It’s an interesting question, and one that in my opinion has a very simple answer: Package management-or, more specifically, the ability to install and upgrade software over the network in a seamlessly integrated fashion-along with the distributed development model package management enabled. Ian Murdock (founder of Debian) http://ianmurdock.com/2007/07/21/how-package-management-changed-everything/
    [Show full text]
  • Functional Package Management with Guix
    Functional Package Management with Guix Ludovic Courtès Bordeaux, France [email protected] ABSTRACT 1. INTRODUCTION We describe the design and implementation of GNU Guix, a GNU Guix1 is a purely functional package manager for the purely functional package manager designed to support a com- GNU system [20], and in particular GNU/Linux. Pack- plete GNU/Linux distribution. Guix supports transactional age management consists in all the activities that relate upgrades and roll-backs, unprivileged package management, to building packages from source, honoring the build-time per-user profiles, and garbage collection. It builds upon the and run-time dependencies on packages, installing, removing, low-level build and deployment layer of the Nix package man- and upgrading packages in user environments. In addition ager. Guix uses Scheme as its programming interface. In to these standard features, Guix supports transactional up- particular, we devise an embedded domain-specific language grades and roll-backs, unprivileged package management, (EDSL) to describe and compose packages. We demonstrate per-user profiles, and garbage collection. Guix comes with a how it allows us to benefit from the host general-purpose distribution of user-land free software packages. programming language while not compromising on expres- siveness. Second, we show the use of Scheme to write build Guix seeks to empower users in several ways: by offering the programs, leading to a \two-tier" programming system. uncommon features listed above, by providing the tools that allow users to formally correlate a binary package and the Categories and Subject Descriptors \recipes" and source code that led to it|furthering the spirit D.4.5 [Operating Systems]: Reliability; D.4.5 [Operating of the GNU General Public License|, by allowing them to Systems]: System Programs and Utilities; D.1.1 [Software]: customize the distribution, and by lowering the barrier to Applicative (Functional) Programming entry in distribution development.
    [Show full text]
  • Mancoosi Tools for the Analysis and Quality Assurance of FOSS Distributions
    Mancoosi tools for the analysis and quality assurance of FOSS distributions Ralf Treinen UFR Informatique Universit´eParis Diderot [email protected] pkgsrcCon Berlin, March 23, 2013 Ralf Treinen Mancoosi tools Joint work with the Mancoosi team at Paris-Diderot Roberto Di Cosmo Pietro Abate Jaap Boender Yacine Boufkhad J´er^omeVouillon Zack Ralf Treinen Mancoosi tools Our research direction Our long-term goal Apply tools and method from computer science to advance the quality of Free and Open Source Software. Why are we doing this? We are scientists working on formal methods We are users and/or contributors to FOSS projects Where we can help Package-based software distributions: 1 Better tools to install packages 2 Better tools to assess the quality of distributions Ralf Treinen Mancoosi tools Our research direction Our long-term goal Apply tools and method from computer science to advance the quality of Free and Open Source Software. Why are we doing this? We are scientists working on formal methods We are users and/or contributors to FOSS projects Where we can help Package-based software distributions: 1 Better tools to install packages 2 Better tools to assess the quality of distributions Ralf Treinen Mancoosi tools Our research direction Our long-term goal Apply tools and method from computer science to advance the quality of Free and Open Source Software. Why are we doing this? We are scientists working on formal methods We are users and/or contributors to FOSS projects Where we can help Package-based software distributions: 1 Better tools to install packages 2 Better tools to assess the quality of distributions Ralf Treinen Mancoosi tools (Binary) packages in Debian (some files Package = some scripts Example (package metadata) metadata Package: aterm Identification Version: 0.4.2-11 Section: x11 Inter-package rel.
    [Show full text]
  • Getting Started Guide
    < 1 Introduction The cubemos SkeletonTracking SDK is a unifying approach to serve a deep learning based 2D/3D skeletal tracking functionality on Windows and Unix based systems. It is accessible by various programming interfaces. Currently C, C++, C#, Python and unity is supported. Content SYSTEM REQUIREMENTS 3 WINDOWS 4 Installation and license activation 4 Getting Started with C# and Visual Studio 6 Getting Started with Python 10 Getting Started with Unity 12 Building SkeletonTracking SDK Samples with CMake on Windows 14 Using SkeletonTracking SDK with Intel® RealSense™ on Windows 15 LINUX 16 Installation and license activation 16 Getting Started with Python 17 Building SkeletonTracking SDK Samples with CMake on Linux 18 Using SkeletonTracking SDK with Intel® RealSense™ on Linux 19 DEVELOPER DOCUMENTATION 20 MANAGING YOUR LICENSES 21 RUNNING CUBEMOS SAMPLES 23 USING CMAKE TO INTEGRATE THE SDK INTO YOUR PROJECT 25 TROUBLESHOOTING 26 2 System Requirements For Windows based operating systems – OS: Windows 10 – C++: Microsoft Visual Studio 2017 (recommended 15.8) – C#: Microsoft .NET Framework version 4.0 – Python: Version >= 3.6 – Unity: Unity 2018.4.x (LTS) For Unix based operating systems – OS: Ubuntu 18.04 (LTS) (tested), Other Debian based system are possible (untested) – C++: Clang 6.0, gcc 7.4 – Python: Version >= 3.6 Hardware: – Platform: x64 – CPUs: 6th to 10th generation Intel® Core™ and Xeon® Processors – GPUs: Intel® Iris® Pro, Intel® HD Graphics 520, 530, 630 – VPUs: Intel® Movidius™ Neural Compute Stick 2 – 3D: 3D Supported Camera among others: Intel® RealSense™ D415, D435 FRAMOS Depth Camera D435e 3 Windows Installation and license activation 1. Download the installation package If you don’t have one, get it here.
    [Show full text]
  • Dpkg and APT First...What Is a Package? ● a Collection of Files That Is Installed on a Linux System
    Package management: dpkg and APT First...what is a package? ● a collection of files that is installed on a Linux system ● usually distributed as compressed single files ○ tarballs ○ zip files ● the way software is distributed, installed, updated on a Linux system jboydt :: csci 26 | dpkg, apt And what is package management? ● a system for tracking all information about a software package ○ all of the files associated with the package ○ dependencies (such as specific versions of specific files) of the package ○ checksums to verify the validity of package files ○ a way to upgrade packages ○ a way to uninstall packages ● a system for obtaining software in its original source code form ○ then, building it and installing it on a specific machine jboydt :: csci 26 | dpkg, apt Package management on popular distros ● RedHat -- rpm/yum ○ also CentOS, SUSE ● Debian -- apt/aptitude ○ also Ubuntu ● ArchLinux -- pacman ● BSDs -- each its own ○ FreeBSD -- pkgng jboydt :: csci 26 | dpkg, apt dpkg jboydt :: csci 26 | dpkg, apt What is dpkg? ● the core of the Debian package management system ● requires .deb packages on local machine ● does not manage dependencies between packages jboydt :: csci 26 | dpkg, apt using dpkg ● common dpkg command options: ○ -i install ○ -r remove, leave config files ○ -P remove, remove config files ○ -p print information about an installed package ○ -l PATTERN list packages whose names match PATTERN * dpkg OPTION PACKAGE_NAME (add .deb to PACKAGE_NAME on install) jboydt :: csci 26 | dpkg, apt APT jboydt :: csci 26 | dpkg, apt What is APT? ● Advanced Packaging Tool ● advancements over dpkg ○ can fetch remote packages ■ remote targets configured in /etc/apt/sources.list ○ can manage package dependencies ○ can manage package upgrades ● a set of tools ○ apt-cache ○ apt-get ● one of the best things about Debian! jboydt :: csci 26 | dpkg, apt apt-cache ● apt-cache showpkg PACKAGE_NAME ○ display info about PACKAGE_NAME ● apt-cache stats ○ how many packages are installed, et al.
    [Show full text]