Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

cannot find deb postinst when install deb of my own

I want to create my own deb package on Ubtunu 14.04 using dh_make,dh_install and so on. I put the postinst file in mongodbdebbuild-1.0/debian/postinst. And I have no problem to create the deb. But when I install it using "dpkg -i mongodbdebbuild_1.0-1_all.deb", there are some errors below: Selecting previously unselected package mongodbdebbuild. (Reading database ... 170486 files and directories currently installed.) Preparing to unpack mongodbdebbuild_1.0-1_all.deb ... Unpacking mongodbdebbuild (1.0-1) ... Setting up mongodbdebbuild (1.0-1) ... dpkg (subprocess): unable to execute installed post-installation script (/var/lib/dpkg/info/mongodbdebbuild.postinst): No such file or directory dpkg: error processing package mongodbdebbuild (--install): subprocess installed post-installation script returned error exit status 2 Processing triggers for ureadahead (0.100.0-16) ... Errors were encountered while processing: mongodbdebbuild

The message shows /var/lib/dpkg/info/mongodbdebbuild.postinst doesnot exist. But it exists in fact. root@root-VM:/etc# ls -al /var/lib/dpkg/info/mongodbdebbuild.postinst
-rwxr-xr-x 1 root root 2704 Nov 8 02:18 /var/lib/dpkg/info/mongodbdebbuild.postinst

The comment of postinst:

!/bin/bash

set -x

SOURCEFILE2=init.d-mongod SOURCEFILE4=mongod.sysconfig

while IFS='' read -r line || [[ -n "$line" ]];do read -r key value <<< "$line" if [[ ! $line =~ ^# && $line ]]; then #echo "Key:$key -Value:$value" declare -A array array[$key]="$value" fi done < "/etc/install.conf" for keyname in "${!array[@]}";do case $keyname in "DBServiceName") dbservicename=${array[$keyname]} ;; "DBSystemUser") dbsystemuser=${array[$keyname]} ;; "DBSystemGroup") dbsystemgroup=${array[$keyname]} ;; "RootPath") rootpath=${array[$keyname]} ;; "DBPath") dbpath=${array[$keyname]} ;; "DataPath") datapath=${array[$keyname]} ;; "LogPath") logpath=${array[$keyname]} ;; "BindIp") bindip=${array[$keyname]} ;; "DBPort") dbport=${array[$keyname]} ;; "ReplicaSetName") replicasetname=${array[$keyname]} ;; "CPULimit") cpulimit=${array[$keyname]} ;; "MemoryLimit") memorylimit=${array[$keyname]} ;; "UninstallSaveData") uninstallsavedata=${array[$keyname]} ;; "RequireSSL") requiressl=${array[$keyname]} ;;
"CertPath") certpath=${array[$keyname]} ;; "KeyPath") keypath=${array[$keyname]} ;; "DBUser") dbuser=${array[$keyname]} ;; "DBPassword") dbpassword=${array[$keyname]} ;; "SingleNode") singlenode=${array[$keyname]} ;;
"ReplicaSetMembers") replicasetmembers=${array[$keyname]} ;; "ReplicaSetKeyFile") replicasetkeyfile=${array[$keyname]} ;; esac
#echo "key : $keyname" #echo "value: ${array[$keyname]}" done; echo "DBServiceName value is :$dbservicename" echo "DBSystemUser value is :$dbsystemuser" echo "DBSystemGroup value is :$dbsystemgroup" echo "RootPath value is :$rootpath" echo "DBPath value is :$dbpath" echo "DataPath value is :$datapath" echo "LogPath value is :$logpath" echo "BindIp value is :$bindip" echo "DBPort value is :$dbport" echo "ReplicaSetName value is :$replicasetname" echo "CPULimit value is :$cpulimit" echo "MemoryLimit value is :$memorylimit" echo "UninstallSaveData value is :$uninstallsavedata" echo "RequireSSL value is :$requiressl" echo "CertPath value is :$certpath" echo "KeyPath value is :$keypath" echo "SingleNode value is :$singlenode" echo "ReplicaSetMembers value is :$replicasetmembers" echo "ReplicaSetKeyFile value is :$replicasetkeyfile"

chmod a+x $dbpath mv -f $SOURCEFILE2 $dbservicename chmod a+x $dbservicename mv -f $SOURCEFILE4 mongod mkdir -p $datapath mkdir -p $logpath touch $logpath/mongod.log

echo "Hello World!" echo "Hello World!" echo "Hello World!"

exit 0

I have no idea. The errors are the same on Ubuntu 14.04 and Ubuntu 16.04.

cannot find deb postinst when install deb of my own

I want to create my own deb package on Ubtunu 14.04 using dh_make,dh_install and so on. I put the postinst file in mongodbdebbuild-1.0/debian/postinst. And I have no problem to create the deb. But when I install it using "dpkg -i mongodbdebbuild_1.0-1_all.deb", there are some errors below: below:

Selecting previously unselected package mongodbdebbuild.
(Reading database ... 170486 files and directories currently installed.)
Preparing to unpack mongodbdebbuild_1.0-1_all.deb ...
Unpacking mongodbdebbuild (1.0-1) ...
Setting up mongodbdebbuild (1.0-1) ...
dpkg (subprocess): unable to execute installed post-installation script (/var/lib/dpkg/info/mongodbdebbuild.postinst): No such file or directory
dpkg: error processing package mongodbdebbuild (--install):
 subprocess installed post-installation script returned error exit status 2
Processing triggers for ureadahead (0.100.0-16) ...
Errors were encountered while processing:
 mongodbdebbuild

mongodbdebbuild

The message shows /var/lib/dpkg/info/mongodbdebbuild.postinst doesnot exist. But it exists in fact. fact.

root@root-VM:/etc# ls -al /var/lib/dpkg/info/mongodbdebbuild.postinst 
-rwxr-xr-x 1 root root 2704 Nov 8 02:18 /var/lib/dpkg/info/mongodbdebbuild.postinst

/var/lib/dpkg/info/mongodbdebbuild.postinst

The comment of postinst:

!/bin/bash

#!/bin/bash

set -x

-x SOURCEFILE2=init.d-mongod SOURCEFILE4=mongod.sysconfig

SOURCEFILE4=mongod.sysconfig while IFS='' read -r line || [[ -n "$line" ]];do read -r key value <<< "$line" if [[ ! $line =~ ^# && $line ]]; then #echo "Key:$key -Value:$value" declare -A array array[$key]="$value" fi done < "/etc/install.conf" for keyname in "${!array[@]}";do case $keyname in "DBServiceName") dbservicename=${array[$keyname]} ;; "DBSystemUser") dbsystemuser=${array[$keyname]} ;; "DBSystemGroup") dbsystemgroup=${array[$keyname]} ;; "RootPath") rootpath=${array[$keyname]} ;; "DBPath") dbpath=${array[$keyname]} ;; "DataPath") datapath=${array[$keyname]} ;; "LogPath") logpath=${array[$keyname]} ;; "BindIp") bindip=${array[$keyname]} ;; "DBPort") dbport=${array[$keyname]} ;; "ReplicaSetName") replicasetname=${array[$keyname]} ;; "CPULimit") cpulimit=${array[$keyname]} ;; "MemoryLimit") memorylimit=${array[$keyname]} ;; "UninstallSaveData") uninstallsavedata=${array[$keyname]} ;; "RequireSSL") requiressl=${array[$keyname]} ;;
"CertPath") certpath=${array[$keyname]} ;; "KeyPath") keypath=${array[$keyname]} ;; "DBUser") dbuser=${array[$keyname]} ;; "DBPassword") dbpassword=${array[$keyname]} ;; "SingleNode") singlenode=${array[$keyname]} ;;
"ReplicaSetMembers") replicasetmembers=${array[$keyname]} ;; "ReplicaSetKeyFile") replicasetkeyfile=${array[$keyname]} ;; esac
#echo "key : $keyname" #echo "value: ${array[$keyname]}" done; echo "DBServiceName value is :$dbservicename" echo "DBSystemUser value is :$dbsystemuser" echo "DBSystemGroup value is :$dbsystemgroup" echo "RootPath value is :$rootpath" echo "DBPath value is :$dbpath" echo "DataPath value is :$datapath" echo "LogPath value is :$logpath" echo "BindIp value is :$bindip" echo "DBPort value is :$dbport" echo "ReplicaSetName value is :$replicasetname" echo "CPULimit value is :$cpulimit" echo "MemoryLimit value is :$memorylimit" echo "UninstallSaveData value is :$uninstallsavedata" echo "RequireSSL value is :$requiressl" echo "CertPath value is :$certpath" echo "KeyPath value is :$keypath" echo "SingleNode value is :$singlenode" echo "ReplicaSetMembers value is :$replicasetmembers" echo "ReplicaSetKeyFile value is :$replicasetkeyfile"

:$replicasetkeyfile" chmod a+x $dbpath mv -f $SOURCEFILE2 $dbservicename chmod a+x $dbservicename mv -f $SOURCEFILE4 mongod mkdir -p $datapath mkdir -p $logpath touch $logpath/mongod.log

$logpath/mongod.log echo "Hello World!" echo "Hello World!" echo "Hello World!"

exit 0

0

I have no idea. The errors are the same on Ubuntu 14.04 and Ubuntu 16.04.