个人工具

UbuntuHelp:Quickbooks Enterprise Data Server

来自Ubuntu中文

跳转至: 导航, 搜索

Introduction

Intuit has released a Linux version of their database manager for QuickBooks Enterprise Edition. The database manager is a program that is separate from the QuickBooks client, which currently runs only on Windows. The database manager is currently only available for the Enterprise version of QuickBooks. The Linux version of the data manager is available for QuickBooks v7R8, v8, v9, and v10. Please note that although QuickBooks Data Server can be made to run on Ubuntu, it is not officially supported by Intuit.

QuickBooks Enterprise Data Server 7 Release 8

Installation on Ubuntu 6.06.1 LTS

There are a couple of things you should note before you begin:

  • These instructions assume that Samba is already correctly configured and working for other shares. Assistance with Samba is available elsewhere in this wiki.
  • You can either preface all of the commands with "sudo" or you can enable the root account with "sudo passwd root".
  • This guide uses alien to convert the official rpm to deb format.
  • This guide uses the "quickbooks" Unix group to control access rights. You can use whatever group you want, just make the substitutions below.
  • This guide uses "/home/qbdata" to hold the data files, but you can use whatever directory you want, just make the substitutions below.
  • This guide uses fairly open access controls on the Samba share. You may be able to get away with more restricted access, but these settings are known to work.
  • The main problem on Ubuntu is with the init scripts not being created, so the instructions below tell you how to create the links manually.

On the Ubuntu server at the bash prompt:

  1. Login as root
  2. apt-get install alien libfam0 portmap fam
  3. mkdir /var/lock/subsys
  4. wget http://http-download.intuit.com/http.intuit/CMO/qbes/resources/qbdbm-17.0-14.i386.rpm
  5. alien --to-deb --scripts qbdbm-17.0-14_i386.rpm
  6. dpkg -i qbdbm_17.0-15_i386.deb
  7. ln -s /etc/init.d/qbmonitord /etc/rc2.d/S85qbmonitord
  8. ln -s /etc/init.d/qbmonitord /etc/rc3.d/S85qbmonitord
  9. ln -s /etc/init.d/qbmonitord /etc/rc4.d/S85qbmonitord
  10. ln -s /etc/init.d/qbmonitord /etc/rc1.d/K15qbmonitord
  11. ln -s /etc/init.d/qbmonitord /etc/rc6.d/K15qbmonitord
  12. addgroup quickbooks
  13. Add users to quickbooks group
  • adduser user1 quickbooks
  • adduser user2 quickbooks
  1. mkdir /home/qbdata
  2. chown root:quickbooks /home/qbdata
  3. chown -R 775 /home/qbdata
  4. nano /opt/qbes7/util/qbmonitord.conf
    1. Delete existing path
    2. Add /home/qbdata
    3. Quickbooks Enterprise does not scan for subdirectories, so if you have more than one directory each one will need to be added on separate lines in qbmonitord.conf
    4. Exit and Save
  5. /etc/init.d/qbmonitord restart
  6. nano -w /etc/samba/smb.conf
    1. Add the following share definition:
      [qbdata]
      comment = QuickBooks Data
      path = /home/qbdata
      guest ok = no
      browseable = yes
      writeable = yes
      create mask = 0664
      directory mask = 0775
      valid users = @quickbooks
      write list = @quickbooks
      force group = quickbooks
      admin users = @quickbooks
      
    2. Exit and Save
  7. /etc/init.d/samba reload

QuickBooks Enterprise Data Server 8

Installation on Ubuntu 8.04.1 LTS

  • These instructions assume that Samba is already correctly configured and working for other shares. Assistance with Samba is available elsewhere in this wiki.
  • You can either preface all of the commands with "sudo" or you can enable the root account with "sudo passwd root".
  • This guide uses alien to convert the official rpm to deb format.
  • This guide uses the "quickbooks" Unix group to control access rights. You can use whatever group you want, just make the substitutions below.
  • This guide uses "/home/qbdata" to hold the data files, but you can use whatever directory you want, just make the substitutions below.
  • This guide uses fairly open access controls on the Samba share. You may be able to get away with more restricted access, but these settings are known to work.
  • The main problem on Ubuntu is with the init scripts not being created, so the instructions below tell you how to create the links manually.

On the Ubuntu server at the bash prompt:

  1. Login as root
  2. apt-get install alien rpm lsb lsb-rpm gamin
  3. mkdir /var/lock/subsys
  4. alien qbdbm-VERSION.rpm
  • Do not use the "--script" option, it will fail
  1. dpkg -i qbdm-VERSION.deb
  • For some reason Alien will bump the last number
  1. nano -w /etc/syslog.conf
    1. Add daemon.* -/var/log/qbdbfilemon.log
    2. Exit and Save
  2. touch /var/log/qbdbfilemon.log
  3. /usr/lib/lsb/install_initd /etc/init.d/qbdbfilemon
  4. /usr/lib/lsb/install_initd /etc/init.d/qbdbmgrn_18
  5. addgroup quickbooks
  6. Add users who will be accessing the samba share to the quickbooks group:
  • usermod -G quickbooks USERNAME
  1. mkdir /home/qbdata
  2. chown root:quickbooks /home/qbdata
  3. chmod -R 770 /home/qbdata
  4. nano -w /etc/samba/smb.conf
    1. Add the following share definition:
      [qbdata]
      comment = QuickBooks Data
      path = /home/qbdata
      guest ok = no
      browseable = yes
      writeable = yes
      create mask = 0664
      directory mask = 0775
      valid users = @quickbooks
      write list = @quickbooks
      force group = quickbooks
      admin users = @quickbooks
      
    2. Exit and Save
  5. nano -w /opt/qb/util/qbmonitord.conf
    1. Remove the default path
    2. Add /home/qbdata
    3. Quickbooks Enterprise does not scan for subdirectories, so if you have more than one directory each one will need to be added on separate lines in qbmonitord.conf
    4. Exit and Save
  6. /etc/init.d/qbmonitord start
  7. /etc/init.d/sysklogd restart

Installation on Ubuntu 8.04.1 LTS 64-bit

  • These instructions assume that Samba is already correctly configured and working for other shares. Assistance with Samba is available elsewhere in this wiki.
  • You can either preface all of the commands with "sudo" or you can enable the root account with "sudo passwd root".
  • This guide uses alien to convert the official rpm to deb format.
  • This guide uses the "quickbooks" Unix group to control access rights. You can use whatever group you want, just make the substitutions below.
  • This guide uses "/home/qbdata" to hold the data files, but you can use whatever directory you want, just make the substitutions below.
  • This guide uses fairly open access controls on the Samba share. You may be able to get away with more restricted access, but these settings are known to work.

On the Ubuntu server at the bash prompt:

  1. Login as root
  2. apt-get install alien lsb gcc gamin ia32-libs
  • Not positive you need the ia32-libs but should not cause any problems and likely you already have them installed
  1. alien -g qbdbm-VERSION.rpm
  • Do not use the "--script" option, it will fail
  1. cd qbdbm-VERSION
  • You don't want to descend into the .orig directory
  1. nano -w debian/control
    1. Change Architecture: i386 TO Architecture: amd64
    2. Exit and Save
  2. ./debian/rules binary
  3. cd ..
  4. dpkg -i qbdm-VERSION.deb
  • For some reason Alien will bump the last number
  1. We need to get the i386 gamin libraries that match our amd64 versions for this to run on amd64 architecture. We also need to modify the init scripts slightly
    1. dpkg -l | grep libgamin
    • Use to match the version from the i386 packages, i.e. 0.1.9-2ubuntu2
    1. wget http://mirrors.kernel.org/ubuntu/pool/main/g/gamin/libgamin0_VERSION_i386.deb
    2. mkdir temp
    3. dpkg -x libgamin0_VERSION_i386.deb temp
    4. cp -d temp/usr/lib/* /usr/lib32/
      1. nano -w /etc/init.d/qbdbfilemon
    5. In the declaration section before the case statement add
      LD_LIBRARY_PATH="/usr/lib32:$LD_LIBRARY_PATH"
      export LD_LIBRARY_PATH
      
    6. Change lockfile="/var/lock/subsys/qbdbfilemon" TO lockfile="/var/lock/qbdbfilemon"
    7. If you want the service to say "..is stopped" instead of "..unused" when status is not running
    • In status case change all instances of echo "..unused" TO echo "..is stopped"
    1. If you want to see the service startup messages
    • In start case change start_daemon ${qbmonitord} >/dev/null 2>&1 TO start_daemon ${qbmonitord} #>/dev/null 2>&1
    1. Exit and Save
      1. nano -w /etc/init.d/qbdbmgrn_VERSION
    2. Change lockfile="/var/lock/subsys/qbdbmgrn_${DBMAJOR_VERSION}" TO lockfile="/var/lock/qbdbmgrn_${DBMAJOR_VERSION}"
    3. In the stop case change killproc ${qbdbm} >/dev/null 2>&1 TO killall -TERM ${qbdbm} >/dev/null 2>&1
    4. If you want the service to say "..is stopped" instead of "..unused" when status is not running
    • In status case change all instances of echo "..unused" TO echo "..is stopped"
    1. Exit and Save
      1. nano -w /etc/syslog.conf
    2. Add daemon.* -/var/log/qbdbfilemon.log
    3. Exit and Save
      1. touch /var/log/qbdbfilemon.log
      2. addgroup quickbooks
      3. Add users who will be accessing the samba share to the quickbooks group:
    4. usermod -G quickbooks USERNAME
      1. mkdir /home/qbdata
      2. chown root:quickbooks /home/qbdata
      3. chmod -R 770 /home/qbdata
      4. nano -w /etc/samba/smb.conf
    5. Add the following share definition:
      [qbdata]
      comment = QuickBooks Data
      path = /home/qbdata
      guest ok = no
      browseable = yes
      writeable = yes
      create mask = 0664
      directory mask = 0775
      valid users = @quickbooks
      write list = @quickbooks
      force group = quickbooks
      admin users = @quickbooks
      
    6. Exit and Save
      1. nano -w /opt/qb/util/qbmonitord.conf
    7. Remove the default path
    8. Add /home/qbdata
    9. Quickbooks Enterprise does not scan for subdirectories, so if you have more than one directory each one will need to be added on separate lines in qbmonitord.conf
    10. Exit and Save
      1. /etc/init.d/qbmonitord start
      2. /etc/init.d/qbmgrn_VERSION start
      3. /etc/init.d/sysklogd restart
      4. Once you have verified that everything is working as it should you can remove the working directories
        rm -r qbdbm-VERSION
        rm -r qbdbm-VERSION.orig
        rm -r temp
        
      5. On the client side I found that you must refer to the company file or share (via shortcut, mapped drive, etc) by the host name, the ip address, or the fully qualified domain name (FQDN) of the server or the clients will fail to connect to the file in multi-user mode with this error: You are trying to work on a company file located on another computer and this copy of QuickBooks cannot reach the server on that computer. (H202) I tried using the Netbios name from Samba's smb.conf (if different from the host name) and that failed. I found that v9 will only work when the clients refer to the ip address or FQDN so I would recommend only using one of those for future ease of upgrade.

      QuickBooks Enterprise Data Server 9

      Upgrade to version 9 from version 8 on Ubuntu 8.04.1 LTS 64-bit

      • I have not done a clean install of QuickBooks Enterprise Data Server v9. However based upon the steps I took to install v8 and then upgrade to v9 I believe if you follow the instructions for installing v8 on 64-bit (above) changing filenames/versions as needed you may have success. But that is my humble opinion with no guarantee or warranty - try at your own risk!
      • These instructions assume that you already have a working installation of QuickBooks Enterprise Data Server v8 that was installed using the above instructions for the 64-bit version only.
      • When I did this upgrade I was able to have the server running v9 and the clients running v8 could still connect and work with v8 company files without issue. This allowed me to do a two-step upgrade process rather then everything at once. YMMV.
      • You can either preface all of the commands with "sudo" or you can enable the root account with "sudo passwd root".
      • This guide uses alien to convert the official rpm to deb format.

      On the Ubuntu server at the bash prompt:

      1. Login as root
      2. /etc/init.d/qbdbfilemon stop
      3. /etc/init.d/qbdbmgrn_OLDVERSION stop
      4. alien -g qbdbm-NEWVERSION.rpm
      • Do not use the "--script" option, it will fail
      1. cd qbdbm-NEWVERSION
      • You don't want to descend into the .orig directory
      1. nano -w debian/control
        1. Change Architecture: i386 TO Architecture: amd64
        2. Exit and Save
      2. ./debian/rules binary
      3. cd ..
      4. dpkg -i qbdm-NEWVERSION.deb
      • For some reason Alien will bump the last number
      • If prompted say yes to overwriting existing files

      1.We need to modify the init scripts

      1. nano -w /etc/init.d/qbdbfilemon
        1. In the declaration section before the case statement add
          LD_LIBRARY_PATH="/usr/lib32:$LD_LIBRARY_PATH"
          export LD_LIBRARY_PATH
          
        2. Change lockfile="/var/lock/subsys/qbdbfilemon" TO lockfile="/var/lock/qbdbfilemon"
        3. If you want the service to say "..is stopped" instead of "..unused" when status is not running
        • In status case change all instances of echo "..unused" TO echo "..is stopped"
        1. If you want to see the service startup messages
        • In start case change start_daemon ${qbmonitord} >/dev/null 2>&1 TO start_daemon ${qbmonitord} #>/dev/null 2>&1
        1. Exit and Save
          1. nano -w /etc/init.d/qbdbmgrn_NEWVERSION
        2. Change lockfile="/var/lock/subsys/qbdbmgrn_${DBMAJOR_VERSION}" TO lockfile="/var/lock/qbdbmgrn_${DBMAJOR_VERSION}"
        3. In the stop case change killproc ${qbdbm} >/dev/null 2>&1 TO killall -TERM ${qbdbm} >/dev/null 2>&1
        4. If you want the service to say "..is stopped" instead of "..unused" when status is not running
        • In status case change all instances of echo "..unused" TO echo "..is stopped"
        1. Exit and Save
          1. /etc/init.d/qbdbfilemon start
          2. /etc/init.d/qbdbmgrn_NEWVERSION start
          3. /etc/init.d/sysklogd restart
          4. Once you have verified that everything is working as it should you can remove the old v8 init scripts and working directories
            rm /etc/init.d/qbdbfilemon.dpkg-old
            rm /etc/init.d/qbdbmgrn_OLDVERSION
            rm -r qbdbm-NEWVERSION
            rm -r qbdbm-NEWVERSION.orig
            rm -r temp
            
          5. On the client side I found that you must refer to the company file or share (via shortcut, mapped drive, etc) by either the ip address or the fully qualified domain name (FQDN) of the server or the clients will fail to connect to the file in multi-user mode with this error: You are trying to work on a company file located on another computer and this copy of QuickBooks cannot reach the server on that computer. (H202) I have tried using the host name and the Netbios name from Samba's smb.conf (if different from the host name) and they failed. This is different from v8 which also allowed host names.

          QuickBooks Enterprise Data Server 10

          Installation on Ubuntu 8.04.4 LTS i386

          Notes:

          • These instructions assume that Samba is installed and configured correctly. Assistance with Samba is available elsewhere in this wiki.
          • It also assumes that your Unix and Samba users have been created.
          • You can preface the commands with sudo or login as root

          Instructions:

          1. Install necessary packages:
            apt-get install alien gamin
            
          2. Retrieve Quickbooks RPM from your Quickbooks Enterprise CD:
            cp /media/cdrom/LinuxDBServer/qbdm-20.0-5.i386.rpm ./
            
          3. Convert the RPM to .deb:
            alien qbdbm-20.0-5.i386.rpm
            
          4. Install the .deb:
            dpkg -i qbdbm_20.0-6_i386.deb
            
          5. Create the Quickbooks permissions group and users:
            addgroup quickbooks
            adduser <username> quickbooks
            
          6. Create and configure the Quickbooks data directory:
            mkdir /home/qbdata
            chown root:quickbooks /home/qbdata
            chmod 770 /home/qbdata
            
          7. Configure the Quickbooks file monitor:
            cp /opt/qb/qbmonitord.conf /opt/qb/qbmonitord.conf.orig
            nano -w /opt/qb/qbmonitord.conf
              * Delete: existing path
              * Add: /home/qbdata
              * Exit and Save
            
          8. Add the Quickbooks file monitor and database manager to the boot sequence:
            update-rc.d qbdbfilemon defaults 23 77
            update-rc.d qbdbmgrn_20 defaults 24 76
            
          9. Create the Quickbooks Samba share in /etc/samba/smb.conf:
            [qbdata]
              comment = QuickBooks Data
              path = /home/qbdata
              guest ok = no
              browseable = yes
              writeable = yes
              create mask = 0660
              directory mask = 0770
              valid users = @quickbooks
              write list = @quickbooks
              force group = quickbooks
              admin users = @quickbooks
            
          10. Restart Services:
            /etc/init.d/samba restart
            /etc/init.d/qbdbfilemon restart
            /etc/init.d/qbdbmgrn_20 restart
            

          External links