Debian Packaging pre requisites
On previous packaging workshops, we had to spend a lot of time troubleshooting issues when people used older versions of Ubuntu which had an older version of dh-make, gem2deb, npm2deb etc. So we thought of clearly mentioning the prerequisites so we can use the available time more efficiently.
If you have Machine with Debian-Sid it is well and good. if not we are having several other ways to set up a packaging environment. those are following but not limited to it.
1. Schroot chroot (lightweight and preferred)
2. LXC Container (saving bandwidth with apt-cacher-ng is easy)
3. Docker Container (if you are familiar with docker already)
4. VM (Using Vagrant or Manually installed. Host system should be sufficiently powerful to run a Virtual Machine)
If you have a GNU/Linux system already with schroot and sbuild packages, using Schroot is recommended (schroot and sbuild can be run on the host system). LXC or docker will work fine for the beginners (for simple packages). Also running docker as privileged container is important otherwise sbuild command will not work, which is required to build packages in clean Debian sid environment.
- You MUST have a Debian unstable system (physical, virtual machine, container or a chroot). See instructions given below to setup Debian Sid.
Schroot - https://wiki.debian.org/Packaging/Pre-Requisites#Schroot
Docker - https://wiki.debian.org/Packaging/Pre-Requisites#Docker
Virtual Machine - https://wiki.debian.org/Packaging/Pre-Requisites#Virtual_Machine
Install packaging tools inside the container
# apt-get install dh-make
OR
# apt-get install gem2deb
OR
# apt-get install npm2deb
as required. For Node.js modules, usenpm2deb
; for ruby gems, usegem2deb
; for go packages, usedh-make-golang
. If there is no tool specific to a language,dh-make
can be used as a generic tool for any language.Understand how a basic command line program is created and installed using a simple Makefile
See https://git.fosscommunity.in/praveen/hello for an exampleGet a basic overview of packaging from Debian New Maintainer's Guide
https://www.debian.org/doc/manuals/maint-guide/Understand basic git usage (add, commit, clone, push, pull, branch, tag)
- Pick any book from http://sixrevisions.com/resources/git-tutorials-beginners/
- Create an account at https://git.fosscommunity.in and add your ssh public key to your account https://git-scm.com/book/en/v2/Git-on-the-Server-Generating-Your-SSH-Public-Key
Run a hello world program with NodeJs. Follow http://nodeguide.com/beginner.html You can
apt-get install nodejs
Go through https://wiki.debian.org/Javascript/Nodejs/Npm2Deb/Tutorial
Join our real-time chat group using one of the 3 options (all 3 services are bridged/interconnected) and say hi. If you have difficulty with pre-requisites please ask here or on our chat room.
- Matrix: #debian-browserify:diasp.in
- IRC: #debian-browserify on irc.oftc.net
- Telegram: https://t.me/debian_browserify
If you are new to these technologies, I suggest you try matrix, see https://matrix.org for details. https://riot.im has a list of apps you can use.
http://webchat.oftc.net/?channels=debian-browserify&uio=MT11bmRlZmluZWQb1 to join the IRC room
Abhijit A M Thu 5 Jan 2017 7:16AM
Abhijit A M Thu 5 Jan 2017 7:18AM
photos from the workshop
Abhijit A M Sun 8 Jan 2017 11:17AM
This was by and large one of the most fruitful workshops we had. More than 32 packages done. Almost 12+ already uploaded. Those who are not done yet, please finish your packages.
With the expectation that many amongst us will continue maintaining the packages and contribute more on the pkg-javascript-devel list.
Shanavas M Thu 9 Feb 2017 2:05PM
If you want to share a directory between host and lxc container
Abhijit A M · Thu 5 Jan 2017 7:16AM
Photos from the workshop