6

How can I tell checkinstall only create deb package file, but not install?


with checkinstall --install=no, it fails at the end, for not having permission to do something. Does it really need root to create a deb file without installation?

$ checkinstall --install=no

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
           This software is released under the GNU GPL.



*****************************************
**** Debian package creation selected ***
*****************************************

This package will be built according to these values: 

0 -  Maintainer: [ tim@admin ]
1 -  Summary: [ wine 1.6.2 built from source Oct 3, 2014 ]
2 -  Name:    [ wine ]
3 -  Version: [ 1.6.2 ]
4 -  Release: [ 1 ]
5 -  License: [ GPL ]
6 -  Group:   [ checkinstall ]
7 -  Architecture: [ i386 ]
8 -  Source location: [ wine-1.6.2 ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ wine ]
12 - Conflicts: [  ]
13 - Replaces: [  ]

Enter a number to change any of them or press ENTER to continue: 

Installing with make install...

========================= Installation results ===========================
make[1]: Entering directory `/tmp/wine-1.6.2/tools'
make[1]: `makedep' is up to date.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools'
make[1]: Entering directory `/tmp/wine-1.6.2/libs/port'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/libs/port'
make[1]: Entering directory `/tmp/wine-1.6.2/libs/wine'
version=`(GIT_DIR=../../.git git describe HEAD 2>/dev/null || echo "wine-1.6.2") | sed -n -e '$s/\(.*\)/const char wine_build[] = "\1";/p'` && (echo $version | cmp -s - version.c) || echo $version >version.c || (rm -f version.c && exit 1)
make[1]: Leaving directory `/tmp/wine-1.6.2/libs/wine'
make[1]: Entering directory `/tmp/wine-1.6.2/libs/wpp'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/libs/wpp'
make[1]: Entering directory `/tmp/wine-1.6.2/tools'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/widl'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/widl'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/winebuild'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/winebuild'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/winedump'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/winedump'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/winegcc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/winegcc'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/wmc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/wmc'
make[1]: Entering directory `/tmp/wine-1.6.2/tools/wrc'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/tools/wrc'
make[1]: Entering directory `/tmp/wine-1.6.2/include'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/include'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/adsiid'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/adsiid'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/dinput'
make[1]: `libdinput.def' is up to date.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/dinput'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/dinput'
make[1]: `libdinput.def.a' is up to date.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/dinput'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/dxerr8'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/dxerr8'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/dxerr9'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/dxerr9'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/dxguid'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/dxguid'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/strmbase'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/strmbase'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/strmiids'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/strmiids'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/uuid'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/uuid'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/winecrt0'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/winecrt0'
make[1]: Entering directory `/tmp/wine-1.6.2/dlls/acledit'
make[1]: Nothing to be done for `all'.
make[1]: Leaving directory `/tmp/wine-1.6.2/dlls/acledit'
./tools/mkinstalldirs -m 755 /usr/local/lib/wine
mkdir /usr/local/lib/wine
mkdir: cannot create directory `/usr/local/lib/wine': Permission denied
make: *** [/usr/local/lib/wine] Error 1

****  Installation failed. Aborting package creation.

Cleaning up...OK

Bye.

with fakeroot checkinstall, also fail due to permission problem.

Evgeny Vereshchagin
  • 5,286
  • 4
  • 35
  • 43
Tim
  • 98,580
  • 191
  • 570
  • 977

2 Answers2

11

Try using checkinstall --install=no --fstrans=yes. It enables file system translation so package won't touch your actual filesystem. Thus it doesn't require root privileges to store files.

sashoalm
  • 5,760
  • 11
  • 32
  • 47
Alex Shkop
  • 211
  • 2
  • 3
  • 1
    that doesn't work and still wants to install with `make install`. works better with `checkinstall --install=no --fstrans=yes make` – QkiZ Feb 05 '20 at 20:18
1

You should be able to pass it --install=no to get the desired behaviour.

Unix-Ninja
  • 802
  • 6
  • 6
  • 1
    with `checkinstall --install=no`, it fails at the end, for not having permission to do something. Does it really need root to create a deb file without installation? See my update. – Tim Oct 04 '14 at 00:21
  • It looks like it is bothered by the fact that /usr/local/lib/wine doesn't exist and wants to create it. I thought it shouldn't try to do that with --install=no. Do you have wine already? If so, /usr/lib/wine may already exist. It may work better if you change your install prefixes to use /usr/lib/wine instead (which is the more Debian-standard path anyway). See if it works better with a modified prefix. – Unix-Ninja Oct 06 '14 at 14:35