This document provides an overview of Debian package management. It discusses the key tools used to install, remove, and manage packages including dpkg, apt-get, and aptitude. Specific functions of these tools are described such as installing packages and resolving dependencies with dpkg, obtaining package information with apt-cache, and listing installed files with dpkg -L. The document also covers force options, package status, and how to find which package installed a specific file.
Free and Open Source Software distributions raise difficult problems both for distribution editors and system administrators. Distributions evolve rapidly by integrating new versions of software packages that are independently developed. System upgrades may proceed on different paths depending on the current state of a system and the available software packages, and system administrators are faced with choices of upgrade paths, and possibly with failing upgrades.
Mancoosi develops mechanisms that provide for rollbacks of failed upgrade attempts, allowing the system administrator to revert the system to the state before the upgrade, and better algorithms and tools to plan upgrade paths based on various information sources about software packages and on optimization criteria.
The consortium as a whole is entirely committed to the free software movement, and the project sets up virtuous cycles associating users, industry and researchers that will outlive the project itself.
Mancoosi is a European research project in the 7th Research Framework Programme (FP7) of the European Commission, which has started February 1st, 2008, and has a duration of 3 years.
Free and Open Source Software distributions raise difficult problems both for distribution editors and system administrators. Distributions evolve rapidly by integrating new versions of software packages that are independently developed. System upgrades may proceed on different paths depending on the current state of a system and the available software packages, and system administrators are faced with choices of upgrade paths, and possibly with failing upgrades.
Mancoosi develops mechanisms that provide for rollbacks of failed upgrade attempts, allowing the system administrator to revert the system to the state before the upgrade, and better algorithms and tools to plan upgrade paths based on various information sources about software packages and on optimization criteria.
The consortium as a whole is entirely committed to the free software movement, and the project sets up virtuous cycles associating users, industry and researchers that will outlive the project itself.
Mancoosi is a European research project in the 7th Research Framework Programme (FP7) of the European Commission, which has started February 1st, 2008, and has a duration of 3 years.
This tutorial is an introduction to Debian packaging. It teaches prospective developers how to modify existing packages, how to create their own packages, and how to interact with the Debian community. In addition to the main tutorial, it includes three practical sessions on modifying the 'grep' package, and packaging the 'gnujump' game and a Java library.
Images of 1st, 2nd and 6th belong to DreamWorks Animation
Image of K Computer belongs to Fujitsu.
Presentation made not for commercial use, but educational.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
3. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
The Debian distribution uses a different packaging system than Red Hat uses.
The Debian system is often considered to be more powerful and robust.
The 4 pieces of the system used most often are:
dpkg dselect apt-get alien
Overview
3
Debian packages, or debs, contain binary files to be installed with info known as metadata.
Metadata holds info on: package, scripts executed, dependencies, conflicts, or suggestions.
Debian package naming scheme:
package_version-build_architecture.deb
•package: name of the application being installed.
•version: version number of the application.
•build: build number of the package. Each time the package is redone this number is incremented.
•architecture: platform the package was compiled for.
There’s a special type of package known as a task package.
These packages are empty packages without software, but with dependencies. Used to install a large “task” on the system.
http://www.debian.org/distrib/packages
4. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
4
Installing packages: dpkg --install package_file.deb or dpkg -i package_file.deb
debian:~# dpkg --install ethereal_0.8.13-2_i386.deb
Selecting previously deselected package ethereal.
(Reading database ... 54478 files and directories currently
installed.)
Unpacking ethereal (from ethereal_0.8.13-2_i386.deb) ...
dpkg: dependency problems prevent configuration of ethereal:
ethereal depends on libpcap0 (>= 0.4-1); however:
Package libpcap0 is not installed.
dpkg: error processing ethereal (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
Ethereal
Ex:
dpkg checks the package for needed dependencies and displays an error if they are not installed.
ethereal_0.8.13-2_i386.deb requires the libpcap0 package to be installed.
debian:~# dpkg --install ethereal_0.8.13-2_i386.deb libpcap0_0.4a6-3_i386.deb
(Reading database ... 54499 files and directories currently
installed.)
Preparing to replace ethereal 0.8.13-2 (using
ethereal_0.8.13-2_i386.deb) ...
Unpacking replacement ethereal ...
Selecting previously deselected package libpcap0.
Unpacking libpcap0 (from libpcap0_0.4a6-3_i386.deb) ...
Setting up libpcap0 (0.4a6-3) ...
Setting up ethereal (0.8.13-2) ...
5. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
5
Force options: To override an error when installing or removing a package.
Option Purpose
configure-any Configure any other package that may help to install this package.
hold Process another package, even if it is on hold.
bad-path Force even when missing files.
not-root Try to add or remove packages, even if not root.
overwrite Overwrite a file from a new package, even if it belongs to another package.
depends-version Normally an error is given if the correct version of a dependency is not installed.
This option makes that a warning instead.
depends Turn all dependency errors into warnings.
confnew Always use the newly installed configuration file.
confold Always use the old configuration file.
conflicts Allow packages that conflict to be installed.
overwrite-dir Overwrite another package’s directory with a new one.
remove-essential Remove essential system packages, dangerous.
debian:~# dpkg -install new_package.deb --force-conflictsEx:
7. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
7
Info on packages: dpkg --print-avail package_name or dpkg -p package_name
debian:~# dpkg --print-avail ethereal
Package: ethereal
Priority: optional
Section: net
Installed-Size: 2996
Maintainer: Frederic Peters <fpeters@debian.org>
Architecture: i386
Version: 0.8.13-2
Depends: libc6 (>= 2.1.94), libglib1.2 (>= 1.2.0), libgtk1.2
(>= 1.2.8-1), libpc
ap0 (>= 0.4-1), libsnmp4.1, xlibs (>= 4.0.1-1), zlib1g (>=
1:1.1.3)
Filename: dists/potato/main/binaryi386/
net/ethereal_0.8.0-1.deb
Size: 1201932
MD5sum: 78928ca734086acd72b441967bf24bc0
Description: Network traffic analyzer
Ethereal is a network traffic analyzer, or “sniffer”, for Unix
and
Unix-like operating systems. It uses GTK+, a graphical user
interface
library, and libpcap, a packet capture and filtering library.
Ex:
8. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
8
listing packages: dpkg --list <pattern> or dpkg -l <pattern>
<pattern> is an optional search pattern. Without pattern dpkg will display every package available.
debian:/usr/doc/dpkg# dpkg --list apache*
Desired=Unknown/Install/Remove/Purge/Hold ## (Letter1)
| Status=Not/Installed/Config-files/Unpacked/Failedconfig/Half-installed ## (Letter2)
|/ Err?=(none)/Hold/Reinst-required/X=both-problems(Status,Err: uppercase=bad) ##
(Letter3)
||/ Name Version Description
+++-===============-===============-============================================
pn apache <none> (no description available)
pn apache-common <none> (no description available)
pn apache-dev <none> (no description available)
pn apache-doc <none> (no description available)
un apache-modules <none> (no description available)
pn apache-perl <none> (no description available)
pn apache-ssl <none> (no description available)
Ex:
Apache packages are listed, but none are installed. - However, several were installed but where purged and now are not installed.
3 columns on left: p - file has been purged; u - file is unpacked, n - file is not installed.
Left columns are documented by lines above file list. Letters correspond to the first letter of the information. Ex: i = installed, and h = half-installed.
9. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
9
Status packages with full details: dpkg --status package_name or dpkg -s package_name
debian:~# dpkg -s ethereal
Package: ethereal
Status: install ok installed
Priority: optional
Section: net
Installed-Size: 2996
Maintainer: Frederic Peters <fpeters@debian.org>
Version: 0.8.13-2
Depends: libc6 (>= 2.1.94), libglib1.2 (>= 1.2.0), libgtk1.2 (>= 1.2.8-1), libpc ap0 (>= 0.4-1),
libsnmp4.1, xlibs (>= 4.0.1-1), zlib1g (>= 1:1.1.3)
Description: Network traffic analyzer
Ethereal is a network traffic analyzer, or “sniffer”, for Unix and Unix-like operating systems.
It uses GTK+, a graphical user interface library, and libpcap, a packet capture and filtering
library.
Ex:
11. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
11
Displaying file ownership : dpkg --search package_name or dpkg -S package_name
To find out which package installed a certain file
debian:/etc# dpkg --search /etc/issue.net
base-files: /etc/issue.net
Ex:
/etc/issue.net file was installed by the base-files package.
debian:/etc# which java
/usr/bin/java
debian:/etc# ls -l $(which java)
lrwxrwxrwx 1 root root 22 2010-05-03 17:51 /usr/bin/java ->
/etc/alternatives/java
debian:/etc# update-alternatives --display java
java - auto mode
link currently points to /usr/lib/jvm/java-6-openjdk/jre/bin/java
/usr/lib/jvm/java-6-openjdk/jre/bin/java - priority 1061
slave java.1.gz: /usr/lib/jvm/java-6-openjdk/jre/man/man1/java.1.gz
Current `best' version is /usr/lib/jvm/java-6-openjdk/jre/bin/java
debian:/etc# dpkg -S /usr/lib/jvm/java-6-openjdk/jre/bin/java
openjdk-6-jre-headless: /usr/lib/jvm/java-6-openjdk/jre/bin/java
Ex:
12. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using dpkg
12
Checking available packages
Most of the info displayed and used by dpkg is stored in /var/lib/dpkg directory.
With 2 files of interest:
/var/lib/dpkg/available - lists available packages to choose from.
/var/lib/dpkg/status - shows status of installed packages.
debian:/var/lib/dpkg# more available
Package: telnet
Priority: standard
Section: net
Installed-Size: 176
Maintainer: Herbert Xu <herbert@debian.org>
Architecture: i386
Source: netkit-telnet
Version: 0.16-4
Replaces: netstd
Depends: libc6 (>= 2.1.2), libncurses5
Filename: dists/potato/main/binary-i386/net/telnet_0.16-4.deb
Size: 58826 .. // ..
Ex:
debian:/var/lib/dpkg# more status
Package: telnet
Status: install ok installed .. // ..
21. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using apt-get
21
/etc/apt/sources.list
Ex: $ cat /etc/apt/sources.list
#deb cdrom:[Ubuntu 9.10 _Karmic Koala_ - Release i386 (20091028.5)]/ karmic main
restricted
# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ karmic main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic main restricted
## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates main restricted
## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic universe
deb http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ karmic-updates universe
22. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using apt-get
22
Updating the available packages - apt-get update
Any time there’s changes to sources.list file.
apt-get will go to the list of sources and update the package database in the system.
Installing packages - apt-get install package_name
If apt-get installs a package, it first checks if has already been downloaded.
If not, apt-get goes to first source in list an retrieves the newest version and prompts the user for the
dependencies and installs them automatically.
Upgrading packages - apt-get upgrade
Upgrade all installed packages to their latest version in one step.
Always issue an apt-get update before doing an upgrade, so the package list is up-to-date.
APT-get options:
24. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using apt-get
24
APT-get other options:
Option Purpose
-h Display the apt-get help.
-q Display output for logging.
-qq No output except for errors.
-d Only download the packages to the archives directory; do not install them.
-y Answer Yes to all queries.
-f Continue even if integrity check fails. This is sometimes used to fix dependency issues.
-m Continue even if the packages can not be located.
-u Show a list of upgraded packages.
-b Build a source package after retrieving it.
-c=filename Read the specified configuration file.
-o=option Set a special configuration option.
-s Simulate the action only. This will display the information as if you have actually executed the process.
This is useful for testing purposes before you accidentally break anything.
30. CoreLinuxforRedHatandFedoralearningunderGNUFreeDocumentationLicense-Copyleft(c)AcácioOliveira2012
Everyoneispermittedtocopyanddistributeverbatimcopiesofthislicensedocument,changingisallowed
Debian package management
Using alien
30
The alien tool converts packages between several different formats.
It can be used on any distribution.
Supported Formats: Debian .deb; Red Hat .rpm; Slackware .tgz; Stampede .slp
Syntax : alien [options] package
Option Alternate Purpose
-d --to-deb The default. Tells alien to create a .deb package
--patch=<filename> Only used with -d. Specifies the patch file to use.
--nopatch Only used with -d. Specifies that no patch file should be used.
-r --to-rpm Creates an RPM package.
-t --to-tgz Creates a Slackware .tgz package.
--to-slp Creates a Stampede package.
-i --install Installs the package after creation.
-g --generate Unpacks the package, but does notgenerate a new one.
-s --single Does the same as -g, but does not create the .orig directory.
-c --scripts Includes scripts in the new package.
-k --keep-version Does not change the version of the generated package.
--description= Sets the package’s description.
-h --help Shows the help options.
-v --version Shows the version of alien.