• 沒有找到結果。

Package Managers

N/A
N/A
Protected

Academic year: 2022

Share "Package Managers"

Copied!
54
0
0

加載中.... (立即查看全文)

全文

(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 Based DEB Based

Low level RPM Dpkg

High level YUM, 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 reference

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

i Installed c Removed p Purged

v Virtual package

B Broken dependencies u Unpacked

C Half-configured H Half-installed

(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.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

(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 <your email>

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/

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

(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

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/

You will also need to build a package for “ROTE”

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.

參考文獻

相關文件

The booklet is divided into four chapters, which cover the spirit and governance framework of school-based management, scope of school- based management, roles

(a) The principal of a school shall nominate such number of teachers of the school for registration as teacher manager or alternate teacher manager of the school as may be provided

XAMPP is a completely free, easy to install Apache distribution.. containing MariaDB, PHP,

• Guidelines can help commissioners and purchasers to make informed decisions and provide managers with a useful framework for assessing treatment costs...

Hence on occupation category, total manpower requirement for managers and administrators, professionals and associate professionals taken together is projected to grow at an

If necessary, you might like to guide students to read over the notes and discuss the roles and language required of a chairperson or secretary to prepare them for the activity9.

In addition to speed improvement, another advantage of using a function handle is that it provides access to subfunctions, which are normally not visible outside of their

root@ubuntu:~# apt-get install apache2 Reading package