Skip to main content

Metapackages

This assingment was performed following the instractions written by our teacher Tero Karvinen
(http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes) &
(http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository)

Creating a metapackage

 

My goal was to create a packge that would install my favorite softwares. As a fan of digital art I chose to go with Inkscape and digiKam.

sudo apt-get update
sudo apt-get install equivs
I ran the update and installed Equivs so I would be able to create my package
equivs-control carolas-artpack.cfg

nano carolas-artpack.cfg
I created the source file and edited it by remowing the commends (#) where they wouldnt be needed. This is the outfit of my first metapackage (version 0.1):



Building and installation


After this was done I still needed to build the packge.
equivs-build carolas-artpack.cfg
The package was created succesfully in my desktop where I would let it be temporary.



sudo apt-get install gdebi
sudo gdebi -n carolas-artpack_0.1_all.deb

I got GDebi (package installer) and tested my brand new artpack and it seemed to work fine! Inkscape and digiKam were installed on my system.

Passing Lintian

sudo apt-get install lintian
lintian -c carolas-artpack_0.1_all.deb


When trying to validate my package with Lintian I encountered with two errors which were also related to each other.

E: carolas-artpack: debian-changelog-file-contains-invalid-email-address xubuntu@xubuntu
E: carolas-artpack: maintainer-address-malformed Live session user
xubuntu@xubuntu

I opened my source file (carolas-artpack) and made the needed changes:

Version: 0.1  -> 0.2
# Maintainer: Your name <yourname@example.com> -> Carola Wennermark <minoreth@gmail.com>

Lintian proofed file
I built the package just like before and installed the new 0.2-file with gdebi. This time the package passed Lintian and I did not get any errors.

Adding a package into repository


sudo apt-get install apache2
cd
mkdir public_html
cd public_html
mkdir -p repository/conf
nano repository/conf/distributions

I created a folder html_public, made a new directory for a configuration file with the following contents:

Codename: lucid
Components: main
Suite: lucid
Architectures: i386 amd64 source



cp /home/xubuntu/Desktop/carolas-artpack_0.2_all.deb /home/xubuntu/Desktop/public_html/carolas-artpack/carolas-artpack_0.2_all.deb

My metapackage was still in desktop so I was thinking of copying it to public_html but this time I decided to write it's location path when I added it to repository. In order to do so I installed reprepro.

sudo apt-get install reprepro
reprepro -VVVV -b repository/ includedeb lucid /home/xubuntu/Desktop/carolas-artpack_0.2_all.deb

The artpack was now in it's new location but I still needed to ran a command that would add it to "repository"-list so it could be used by all the users and clients.
reprepro -VVVV -b repository/ includedeb lucid /home/xubuntu/Desktop/carolas-artpack_0.2_all.deb


Now I could use the basic installation command for calling the created metapackage.

sudo apt-get update
sudo apt-get install carolas-artpack


Since the package was already installed and updated I naturally did not receive anything new but I could be quite sure my package was working and living well.

Inserting script into a metapackage


nano lotto

#!/bin/bash
echo "This week's lucky numbers are:"
echo $(expr $RANDOM % 40)-$(expr $RANDOM % 40)-$(expr $RANDOM % 40)-$(expr $RANDOM % 40)-$(expr $RANDOM % 40)-$(expr $RANDOM % 40)-$(expr $RANDOM % 40)

I started by creating my script that would show 7 lucky number's of the week. I would included it to my original package, carolas-artpack.

chmod +x lotto
./lotto


I ran the script and saw it working. Next I opened carolas-artpack and modified it once again. I added the script and changed the version number to 0.3.


I linked the "Files" to my lotto file, built the package and ran it.


Sources 
Lectures by Tero Karvinen
http://terokarvinen.com/2011/create-deb-metapackage-in-5-minutes/
http://terokarvinen.com/2011/update-all-your-computers-with-a-deb-repository/

http://www.computerhope.com/unix/ucp.htm
http://juhani-hynynen-linux.blogspot.fi/2014/02/h4-metapaketin-luominen-pakettivarasto.html
https://apps.ubuntu.com/cat/applications/precise/gdebi/


Based on Linux course by Tero Karvinen (http://terokarvinen.com)

Comments

Popular posts from this blog

Building Love-O-Meter by using a temperature sensor

This "Love-O-Meter" is based on the tutorial by Arduino and it comes with the starter kit. It uses a temperature sensor to measure the warmth of your skin and then starts to turn on (or off) the LEDs  indicated by the temperature.

The components Arduino UNOBreadboardJumper wiresLEDs220 ohm resistorsTMP36 temperature sensor

Building the Circuit
At first I ran the "Hello World" for Arduino to make sure the environment would work as expected. Now I could start to connect the jumper wires between Arduino UNO and the breadboard.

As usually I connected the breadboard to power (5V) and to the ground (GND). I inserted the TMP36 on the breadboard so the rounded part of the sensor would face away from Arduino.

I attached 3 LED lights and the resistors and connected them with Arduino. The lights should react to the heat of the finger and if the temperature would get hot enough all the lights would be on and would also tell you if you are a hot lover or not...

The result and the …

Using a button to control the LED light

This time my project was to configure how to build a button that would turn on and off depending if the user is pushing it or not. While holding the button down the LED should stay on until removing the finger.



For this assignment I used the fallowing components:
Arduino UNO and USBJumper wiresLED lightBreadboardButton10k ohm resistor
At first I run the "Hello World" for Arduino and made sure that the LED I was using worked properly (read my previous post).

I attached the button in the middle of the breadboard so the legs were touching the both "sides" of it.


Now I started to connect the jumper wires between the Arduino UNO and the breadboard. In order to get it working like in the sample code (Ardoino > Examples > 02.Digital > Button)
I linked the wires with Arduino's 5V (red wire, positive) and ground (black wire, negative) to the equal holes on the very corner of the breadboard (+ and -). I put the white jumper wire to connect the positive circuit to t…

Creating a Bootable USB for Kali Linux

If you are interested to see my documentation about making a bootable USB for Xubuntu please click here!

This USB was made by using the latest version of Xubuntu (the 14.04 release).

Downloading Kali Linux 
23.13. After navigating to https://www.kali.org/ I chose the version that would suit me the best and started downloading the ISO image for 64-Bit system.


USB imaging
22.40. I followed the guide offered by kali.org and used the commandsudo fdisk -lwithout plugging the USB yet. I needed to pay attention to the path of Device Boot (/dev/sdb1). After this I inserted USB and ran the same command again. Now I could see how the name of Device Boot had changed to sdc1. This would be my USB to use.

22.50 It only took a while to format the dd code correctly as the base was already given on Kali's web page. After running the correct command for the first time I got an error message "'/dev/sdc1': Permission denied". In these kind of situations I tend to ask sudo for help an…