Presentation is loading. Please wait.

Presentation is loading. Please wait.

Package Managers What are they and why we use them.

Similar presentations


Presentation on theme: "Package Managers What are they and why we use them."— Presentation transcript:

1 Package Managers What are they and why we use them

2 Thoughts of an admin Installing software is painful Installing a lot of software is extremely painful Installing a lot of software on a lot of machines is HELL

3 舉例 - LOL 天賦、符文 道具

4 Before Packages Install from source Time consuming Varying configuration

5 Improvement 1 Copy the binaries Setup scripts? Version? Dependencies?

6 Package - Basic Archive Binaries Supporting files Setup script

7 Package – Improvement Versioning ◦1.0.x ◦1.1.x ◦… Upgrades!

8 Package - Dependencies Program A requires library B to work If library C is available, program A will work better/faster!

9 Example – Call of Duty Requires: DirectX Works better with: PhysX

10 Package Managers Low Level Unpacking packages Run configuration scripts Dependency checks …

11 Package Managers High Level Fetch from remote repositories Search Install additional packages to meet dependencies Handle complex upgrades

12 Package Repository Collection of packages Maintained by distribution Multiple versions Index

13 Package Managers RPM BasedDEB Based Low levelRPMDpkg High levelYUM, up2date, …APT

14 DEBIAN DPKG & APT Focus on

15 Types of Packages Binary Package Meta Package Virtual Package

16 Binary Package Normal package Source is available Architecture ◦Dependent  Compiled binary files ◦Independent  Scripts  Documents  Data files

17 Meta Package Depends on other packages only Rename ◦git-core -> git Default version ◦gcc -> gcc-4.6 ◦Python -> python2.7 Can be creative!

18 Virtual Package Does not really exist Names common functionality Other binary packages “provide” a virtual package c-compiler is provided by ◦gcc ◦gcc-4.6 ◦clang

19 Commonly Used Commands apt-get apt-cache aptitude ◦Frontend to the first 2 commands

20 Search for a package apt-cache search ^vim$ Search pattern State flags

21 Search Patterns Patterns are regular expressions Aptitude supports complex patterns ◦See referencereference Search requires guessing ◦Just like Googling

22 Differences Aptitude and apt-cache have slighty different behavior ◦Aptitude looks at package name only ◦Apt-cache looks at description as well

23 State Flags

24 Try it! You want to install a web server. What do you look for? What should you actually install?

25 Looking at a package Web interface ◦http://packages.debian.orghttp://packages.debian.org CLI ◦apt-cache show XXX ◦aptitude show XXX Debian Control File Try it now!

26

27 Package Info Name State Version Priority Section Maintainer Architecture Dependencies Description

28 Package Info - State installed not installed removed …

29 Package Info - Version Vim: 2:7.3.547-6 2: -> Epoch 7.3.547 -> Upstream version -6 -> Debian package revision

30 Package Info - Priority Required Important Standard Optional Extra

31 Package Info - Dependencies Depends Recommends Suggests Conflicts Replaces Breaks Provides Syntax: http://www.debian.org/doc/debian- policy/ch-relationships.html http://www.debian.org/doc/debian- policy/ch-relationships.html

32 Installing / Removing apt-get install XXX aptitude install XXX remove/purge hold/unhold upgrade dist-upgrade

33 remove vs. purge Remove keeps config files in system Purge = Remove + delete config files

34 hold/unhold Keep a package at a specific state/version unless explicitly request otherwise

35 upgrade vs. dist-upgrade upgrade only updates currently installed packages dist-upgrade will do anything to satisfy all new dependencies

36 Try it now! Install a web server Then remove it See that config files are still there Then purge it

37 MAKING A PACKAGE

38 Why? Customize Software not packaged yet ◦Become a maintainer? Build your own

39 Making your first package Basic structure ◦package/XXX  Files you want to package ◦package/DEBIAN/control  Debian control file ◦package/DEBIAN/xxx  Package scripts, other control files dpkg-deb –b package

40 Homework – Build a meta package Name: nasa-hw Should always install ◦gcc no older than 4.7 ◦make newer than 3.80 Should not install when ◦clang is installed Maintainer: Your ID Use your judgment for other fields ◦Read the documents! Submit.deb file

41 Too simple? Debian related source code ◦source/debian/rules ◦source/debian/control ◦source/debian/changelog ◦source/debian/…

42 Guidelines for packaging Debian 新維護人員手冊 ◦http://www.debian.org/doc/manuals /maint-guide/http://www.debian.org/doc/manuals /maint-guide/ Get other package sources and see how other people do it ◦apt-get source XXX

43 Packages for packaging build-essential dpkg-dev debhelper CDBS dh_make lintian

44 build-essential Meta package that depends on essential tools for packaging You need to install additional tools/libraries ◦debhelper, cdbs, … ◦lib*-dev

45 dpkg-dev Basic tools for package development dpkg-buildpackage

46 Debhelper Collection of commands to assist packaging Wraps complex steps ◦Splitting files between different packages ◦Generating shared library dependencies ◦Generate and sign binary packages ◦…

47 CDBS Common Debian Build System Class based system Supports different build systems ◦make, ant, cmake, … http://www.slideshare.net/petere isentraut/the-common-debian- build-system-cdbs http://www.slideshare.net/petere isentraut/the-common-debian- build-system-cdbs

48 dh_make Prepare source code for packaging Always uses debhelper Supports CDBS

49 lintian Check packages for errors

50 Steps to packaging http://www.debian.org/doc/manual s/maint-guide/first.en.html http://www.debian.org/doc/manual s/maint-guide/first.en.html 1. Get source code 2. Unpack 3. dh_make 4. Install build dependencies 5. Check control file 6. Check installation paths 7. Build package ◦dpkg-buildpackage -b

51 Homework Build a package of “Omnitty” ◦http://omnitty.sourceforge.net/http://omnitty.sourceforge.net/ You will also need to build a package for “ROTE” ◦http://omnitty.sourceforge.net/http://omnitty.sourceforge.net/ Build it, install it, and try it out Submit.deb for omnitty

52 Tips Packages you can look at ◦libevent ◦screen ◦tmux ◦make

53 HOMEWORK RECAP

54 nasa-hw meta package omnitty binary package Leave your packages on 217 workstation ◦Mail the path of your package to wens_at_csie.org Start sooner! You need to do research to finish this assignment.


Download ppt "Package Managers What are they and why we use them."

Similar presentations


Ads by Google