Differences between revisions 8 and 9
Revision 8 as of 2016-03-31 03:00:09
Size: 2174
Editor: SamatJain
Comment: Building packages from another distribution (e.g. testing)
Revision 9 as of 2016-04-22 22:23:51
Size: 2295
Editor: SamatJain
Comment: dpkg-buildpackage for another arch
Deletions are marked like this. Additions are marked like this.
Line 39: Line 39:
dpkg-buildpackage -b dpkg-buildpackage -b -uc
}}}

To build for another architecture (cross compile), use

{{{#!highlight sh
dpkg-buildpackage -b -uc -ai386

   1 # What packages use the most disk space?
   2 dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -n
   3 
   4 # Reinstall conf files
   5 sudo dpkg -i --force-confmiss /var/cache/apt/archives/whatever*deb
   6 sudo aptitude install -o 'Dpkg::Options::=--force-confmiss' whatever # Doesn't work?
   7 
   8 # Remove old kernels
   9 # from: http://chr4.org/blog/2013/08/04/apt-get-cleanup-commands/
  10 apt-get purge $(dpkg --list |egrep 'linux-image-[0-9]' |awk '{print $3,$2}' |sort -nr |tail -n +2 |grep -v $(uname -r) |awk '{ print $2}')
  11 
  12 
  13 # List packages that are uninstalled, but configuration remains
  14 dpkg --list |grep '^rc' |awk '{print $2}'
  15 # Remove those packages
  16 apt-get purge -y $(dpkg --list |grep '^rc' |awk '{print $2}')
  17 apt-get autoremove -y # Remove dependencies no longer required
  18 

Building packages

If using dpkg-buildpackage to build a customized package (one for which you've not made a formal patch), you may get an error that looks like:

dpkg-source: info: using source format `3.0 (quilt)'
dpkg-source: info: building cairo using existing ./cairo_1.13.0~20140204.orig.tar.xz
dpkg-source: info: local changes detected, the modified files are:
 cairo-1.13.0~20140204/src/cairo-ft-font.c
dpkg-source: info: you can integrate the local changes with dpkg-source --commit
dpkg-source: error: aborting due to unexpected upstream changes, see /tmp/cairo_1.13.0~20140204-0ubuntu1.diff.Rho4ow
dpkg-buildpackage: error: dpkg-source -b cairo-1.13.0~20140204 gave error exit status 2

This is because dpkg-buildpackage wants to create a source package, but with an unexpected change a source package may get built that does not match the binary. To fix this, pass the '-b' option to only build a binary:

   1 dpkg-buildpackage -b -uc

To build for another architecture (cross compile), use

   1 dpkg-buildpackage -b -uc -ai386

Building packages from another distribution (e.g. testing)

Add deb-src line for the repository (Q: how do you specify from where to fetch the package?). Then:

aptitude install build-essential fakeroot devscripts
apt-get build-deb $PACKAGE
apt-get -b source $PACKAGE
# Install the created *.deb file


CategoryCheatSheet

SamatsWiki: CheatSheet/Debian (last edited 2021-10-25 06:26:50 by SamatJain)