Skip to content

Instantly share code, notes, and snippets.

@rafael-neri
Last active September 14, 2016 14:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rafael-neri/5e79df5f105682b670df3de848a11c07 to your computer and use it in GitHub Desktop.
Save rafael-neri/5e79df5f105682b670df3de848a11c07 to your computer and use it in GitHub Desktop.
Simple script to create debian package
#!/bin/bash
# Distributed under the GNU GPL
# Check if user is root
if [ "$EUID" -ne 0 ]
then echo "Please run as root"
exit
fi
# Get path
path=`pwd`
# Copy package to tmp
rm -rf /tmp/package
mkdir -p /tmp/package
cp -a ${path}/* "/tmp/package"
chown -R root.root /tmp/$package
# validations
if [ ! -d /tmp/package/DEBIAN ]; then
echo "Cannot found debian directory"
exit 1
fi
if [ ! -f /tmp/package/DEBIAN/control ]; then
echo "Cannot found control file"
exit 1
fi
# Get info from control file
packageName=$(cat /tmp/package/DEBIAN/control | grep ^Package: | sed 's/^Package: \(.*\)/\1/' )
version=$(cat /tmp/package/DEBIAN/control | grep ^Version | sed 's/^Version: \(.*\)/\1/' )
arch=$(cat /tmp/package/DEBIAN/control | grep ^Architecture | sed 's/^Architecture: \(.*\)/\1/' )
# Set release name
releaseName=${packageName}_${version}_${arch}.deb
# Remove Unnecessary files and directories
rm -f /tmp/package/make-deb.sh
rm -f /tmp/package/.gitignore
rm -f /tmp/package/*.deb
rm -f /tmp/package/LICENSE
rm -f /tmp/package/README.md
# Create MD5 SUM
if [ -f /tmp/package/DEBIAN/md5sums ]; then
rm -f /tmp/package/DEBIAN/md5sums
fi
find /tmp/package ! -type d -print0 | xargs -0 md5sum > /tmp/package/DEBIAN/md5sums
# Create instaled size diretive
size=$(du -s /tmp/package | cut -f 1)
sed -i "s/^\(Installed-Size:\) .*/\1 $size/" /tmp/package/DEBIAN/control
# build package
mv /tmp/package /tmp/${packageName}
cd /tmp
dpkg-deb -Z bzip2 -b $packageName $releaseName
cd -
# save deb file
mv /tmp/${releaseName} ${path}
rm -Rf /tmp/${packageName}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment