4

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.

marked as duplicate by Satō Katsura, countermode, thrig, Kusalananda, Stephen Kitt Feb 15 '17 at 16:34

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • That's the default behavior. – jordanm Sep 28 '14 at 18:16
  • Then why does it ask for root? – Tim Sep 28 '14 at 18:16
  • a lot of package building semi-requires root. Usually fakeroot is used instead. – jordanm Sep 28 '14 at 18:18
  • 1
    What does "semi-requires" mean? How shall I fakeroot? – Tim Sep 28 '14 at 18:19
7

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.

1

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

  • 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 4 '14 at 0: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 6 '14 at 14:35

Not the answer you're looking for? Browse other questions tagged or ask your own question.