我正在尝试在 ubuntu 18.04 上安装 odoo 12,但遇到了有关 npm 的问题,所以我想完全删除节点,但遇到了错误

我正在尝试在 ubuntu 18.04 上安装 odoo 12,但遇到了有关 npm 的问题,所以我想完全删除节点,但遇到了错误

我在安装 odoo12 时遇到有关 npm 的问题“以下软件包具有未满足的依赖项:npm:依赖:nodejs,但不会安装”

因此我尝试删除带有所有组件的现有节点以解决此问题,我已经使用命令 sudo apt-get purge --auto-remove nodejs 从我的机器中完全删除节点,但是当我输入 node -v reply: v8.11.3 时我正在使用 ubuntu 18.04

答案1

我有一个更好的解决方案,可以帮助其他人。我刚刚修改了现有的脚本,它运行得很好。

我修改了Yenthe Van Ginneken 剧本

  • 改变需求库的安装过程。

  • 添加新的python库和修改的特定版本的python库。

  • 更改 npm 安装过程。

     #!/bin/bash
      ################################################################################
      # Script for installing Odoo on Ubuntu 14.04, 15.04, 16.04 and 18.04 (could be used for other version too)
      # Author: Yenthe Van Ginneken
      # Modified by: Shahid Raza
      #-------------------------------------------------------------------------------
      # This script will install Odoo on your Ubuntu 16.04 server. It can install multiple Odoo instances
      # in one Ubuntu because of the different xmlrpc_ports
      #-------------------------------------------------------------------------------
      # Make a new file:
      # sudo nano odoo-install.sh
      # Place this content in it and then make the file executable:
      # sudo chmod +x odoo-install.sh
      # Execute the script to install Odoo:
      # ./odoo-install
      ################################################################################
    
      #OE_USER is your system user change name according your system
      OE_USER="odoo"
      OE_HOME="/$OE_USER"
      OE_HOME_EXT="/$OE_USER/${OE_USER}-server"
      # The default port where this Odoo instance will run under (provided you use the command -c in the terminal)
      # Set to true if you want to install it, false if you don't need it or have it already installed.
      INSTALL_WKHTMLTOPDF="True"
      # Set the default Odoo port (you still have to use -c /etc/odoo-server.conf for example to use this.)
      OE_PORT="8069"
      # Choose the Odoo version which you want to install. For example: 12.0, 11.0, 10.0 or saas-18. When using 'master' the master version will be installed.
      # IMPORTANT! This script contains extra libraries that are specifically needed for Odoo 12.0
      OE_VERSION="12.0"
      # Set this to True if you want to install the Odoo enterprise version!
      IS_ENTERPRISE="False"
      # set the superadmin password
      OE_SUPERADMIN="admin"
      OE_CONFIG="${OE_USER}-server"
    
      ##
      ###  WKHTMLTOPDF download links
      ## === Ubuntu Trusty x64 & x32 === (for other distributions please replace these two links,
      ## in order to have correct version of wkhtmltopdf installed, for a danger note refer to 
      ## https://github.com/odoo/odoo/wiki/Wkhtmltopdf ):
      WKHTMLTOX_X64=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.deb
      WKHTMLTOX_X32=https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_i386.deb
    
      #--------------------------------------------------
      # Update Server
      #--------------------------------------------------
      echo -e "\n---- Update Server ----"
    
      # add-apt-repository can install add-apt-repository Ubuntu 18.x
      sudo apt-get install software-properties-common
      # universe package is for Ubuntu 18.x
      sudo add-apt-repository universe
      # libpng12-0 dependency for wkhtmltopdf
      sudo add-apt-repository "deb http://mirrors.kernel.org/ubuntu/ xenial main"
      sudo apt-get update
      sudo apt-get upgrade -y
    
      #--------------------------------------------------
      # Install PostgreSQL Server
      #--------------------------------------------------
      echo -e "\n---- Install PostgreSQL Server ----"
      sudo apt-get install postgresql -y
    
      echo -e "\n---- Creating the ODOO PostgreSQL User  ----"
      sudo su - postgres -c "createuser -s $OE_USER" 2> /dev/null || true
    
      #--------------------------------------------------
      # Install Dependencies
      #--------------------------------------------------
      echo -e "\n--- Installing Python 3 + pip3 --"
      sudo apt-get install git python3 python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less libpng12-0 gdebi -y
    
      echo -e "\n---- Install python packages/requirements ----"
      sudo pip3 install Babel
      sudo pip3 install chardet
      sudo pip3 install decorator
      sudo pip3 install docutils
      sudo pip3 install ebaysdk
      sudo pip3 install feedparser
      sudo pip3 install gevent
      sudo pip3 install greenlet
      sudo pip3 install html2text
      sudo pip3 install Jinja2
      sudo pip3 install lxml
      sudo pip3 install Mako
      sudo pip3 install MarkupSafe
      sudo pip3 install mock
      sudo pip3 install num2words
      sudo pip3 install ofxparse
      sudo pip3 install passlib
      sudo pip3 install Pillow
      sudo pip3 install psutil
      sudo pip3 install psycopg2-binary
      sudo pip3 install pydot
      sudo pip3 install pyldap
      sudo pip3 install pyparsing
      sudo pip3 install PyPDF2
      sudo pip3 install pyserial
      sudo pip3 install python-dateutil
      sudo pip3 install pytz
      sudo pip3 install pyusb
      sudo pip3 install qrcode
      sudo pip3 install reportlab
      sudo pip3 install requests
      sudo pip3 install suds-jurko
      sudo pip3 install vatnumber
      sudo pip3 install vobject
      sudo pip3 install Werkzeug==0.11.15
      sudo pip3 install XlsxWriter
      sudo pip3 install xlwt
      sudo pip3 install xlrd
      sudo pip3 install pypiwin32
      sudo pip3 install libsass==0.12.3
    
      echo -e "\n---- Installing nodeJS NPM and rtlcss for LTR support ----"
      sudo apt-get install -y npm
      sudo ln -s /usr/bin/nodejs /usr/bin/node
      sudo npm install -g less less-plugin-clean-css
      sudo apt-get install -y node-less
    
      #--------------------------------------------------
      # Install Wkhtmltopdf if needed
      #--------------------------------------------------
      if [ $INSTALL_WKHTMLTOPDF = "True" ]; then
        echo -e "\n---- Install wkhtml and place shortcuts on correct place for ODOO 12 ----"
        #pick up correct one from x64 & x32 versions:
        if [ "`getconf LONG_BIT`" == "64" ];then
            _url=$WKHTMLTOX_X64
        else
            _url=$WKHTMLTOX_X32
        fi
        sudo wget $_url
        sudo gdebi --n `basename $_url`
        sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin
        sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin
      else
        echo "Wkhtmltopdf isn't installed due to the choice of the user!"
      fi
    
      echo -e "\n---- Create ODOO system user ----"
      sudo adduser --system --quiet --shell=/bin/bash --home=$OE_HOME --gecos 'ODOO' --group $OE_USER
      #The user should also be added to the sudo'ers group.
      sudo adduser $OE_USER sudo
    
      echo -e "\n---- Create Log directory ----"
      sudo mkdir /var/log/$OE_USER
      sudo chown $OE_USER:$OE_USER /var/log/$OE_USER
    
      #--------------------------------------------------
      # Install ODOO
      #--------------------------------------------------
      echo -e "\n==== Installing ODOO Server ===="
      sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/odoo $OE_HOME_EXT/
    
      if [ $IS_ENTERPRISE = "True" ]; then
          # Odoo Enterprise install!
          echo -e "\n--- Create symlink for node"
          sudo ln -s /usr/bin/nodejs /usr/bin/node
          sudo su $OE_USER -c "mkdir $OE_HOME/enterprise"
          sudo su $OE_USER -c "mkdir $OE_HOME/enterprise/addons"
    
          GITHUB_RESPONSE=$(sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/enterprise "$OE_HOME/enterprise/addons" 2>&1)
          while [[ $GITHUB_RESPONSE == *"Authentication"* ]]; do
              echo "------------------------WARNING------------------------------"
              echo "Your authentication with Github has failed! Please try again."
              printf "In order to clone and install the Odoo enterprise version you \nneed to be an offical Odoo partner and you need access to\nhttp://github.com/odoo/enterprise.\n"
              echo "TIP: Press ctrl+c to stop this script."
              echo "-------------------------------------------------------------"
              echo " "
              GITHUB_RESPONSE=$(sudo git clone --depth 1 --branch $OE_VERSION https://www.github.com/odoo/enterprise "$OE_HOME/enterprise/addons" 2>&1)
          done
    
          echo -e "\n---- Added Enterprise code under $OE_HOME/enterprise/addons ----"
          echo -e "\n---- Installing Enterprise specific libraries ----"
          sudo pip3 install num2words ofxparse
          sudo npm install -g less
          sudo npm install -g less-plugin-clean-css
      fi
    
      echo -e "\n---- Create custom module directory ----"
      sudo su $OE_USER -c "mkdir $OE_HOME/custom"
      sudo su $OE_USER -c "mkdir $OE_HOME/custom/addons"
    
      echo -e "\n---- Setting permissions on home folder ----"
      sudo chown -R $OE_USER:$OE_USER $OE_HOME/*
    
      echo -e "* Create server config file"
    
      sudo touch /etc/${OE_CONFIG}.conf
      echo -e "* Creating server config file"
      sudo su root -c "printf '[options] \n; This is the password that allows database operations:\n' >> /etc/${OE_CONFIG}.conf"
      sudo su root -c "printf 'admin_passwd = ${OE_SUPERADMIN}\n' >> /etc/${OE_CONFIG}.conf"
      sudo su root -c "printf 'xmlrpc_port = ${OE_PORT}\n' >> /etc/${OE_CONFIG}.conf"
      sudo su root -c "printf 'logfile = /var/log/${OE_USER}/${OE_CONFIG}.log\n' >> /etc/${OE_CONFIG}.conf"
      if [ $IS_ENTERPRISE = "True" ]; then
          sudo su root -c "printf 'addons_path=${OE_HOME}/enterprise/addons,${OE_HOME_EXT}/addons\n' >> /etc/${OE_CONFIG}.conf"
      else
          sudo su root -c "printf 'addons_path=${OE_HOME_EXT}/addons,${OE_HOME}/custom/addons\n' >> /etc/${OE_CONFIG}.conf"
      fi
      sudo chown $OE_USER:$OE_USER /etc/${OE_CONFIG}.conf
      sudo chmod 640 /etc/${OE_CONFIG}.conf
    
      echo -e "* Create startup file"
      sudo su root -c "echo '#!/bin/sh' >> $OE_HOME_EXT/start.sh"
      sudo su root -c "echo 'sudo -u $OE_USER $OE_HOME_EXT/openerp-server --config=/etc/${OE_CONFIG}.conf' >> $OE_HOME_EXT/start.sh"
      sudo chmod 755 $OE_HOME_EXT/start.sh
    
      #--------------------------------------------------
      # Adding ODOO as a deamon (initscript)
      #--------------------------------------------------
    
      echo -e "* Create init file"
      cat <<EOF > ~/$OE_CONFIG
      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides: $OE_CONFIG
      # Required-Start: \$remote_fs \$syslog
      # Required-Stop: \$remote_fs \$syslog
      # Should-Start: \$network
      # Should-Stop: \$network
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Short-Description: Enterprise Business Applications
      # Description: ODOO Business Applications
      ### END INIT INFO
      PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
      DAEMON=$OE_HOME_EXT/odoo-bin
      NAME=$OE_CONFIG
      DESC=$OE_CONFIG
      # Specify the user name (Default: odoo).
      USER=$OE_USER
      # Specify an alternate config file (Default: /etc/openerp-server.conf).
      CONFIGFILE="/etc/${OE_CONFIG}.conf"
      # pidfile
      PIDFILE=/var/run/\${NAME}.pid
      # Additional options that are passed to the Daemon.
      DAEMON_OPTS="-c \$CONFIGFILE"
      [ -x \$DAEMON ] || exit 0
      [ -f \$CONFIGFILE ] || exit 0
      checkpid() {
      [ -f \$PIDFILE ] || return 1
      pid=\`cat \$PIDFILE\`
      [ -d /proc/\$pid ] && return 0
      return 1
      }
      case "\${1}" in
      start)
      echo -n "Starting \${DESC}: "
      start-stop-daemon --start --quiet --pidfile \$PIDFILE \
      --chuid \$USER --background --make-pidfile \
      --exec \$DAEMON -- \$DAEMON_OPTS
      echo "\${NAME}."
      ;;
      stop)
      echo -n "Stopping \${DESC}: "
      start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
      --oknodo
      echo "\${NAME}."
      ;;
      restart|force-reload)
      echo -n "Restarting \${DESC}: "
      start-stop-daemon --stop --quiet --pidfile \$PIDFILE \
      --oknodo
      sleep 1
      start-stop-daemon --start --quiet --pidfile \$PIDFILE \
      --chuid \$USER --background --make-pidfile \
      --exec \$DAEMON -- \$DAEMON_OPTS
      echo "\${NAME}."
      ;;
      *)
      N=/etc/init.d/\$NAME
      echo "Usage: \$NAME {start|stop|restart|force-reload}" >&2
      exit 1
      ;;
      esac
      exit 0
      EOF
    
      echo -e "* Security Init File"
      sudo mv ~/$OE_CONFIG /etc/init.d/$OE_CONFIG
      sudo chmod 755 /etc/init.d/$OE_CONFIG
      sudo chown root: /etc/init.d/$OE_CONFIG
    
      echo -e "* Start ODOO on Startup"
      sudo update-rc.d $OE_CONFIG defaults
    
      echo -e "* Starting Odoo Service"
      sudo su root -c "/etc/init.d/$OE_CONFIG start"
      echo "-----------------------------------------------------------"
      echo "Done! The Odoo server is up and running. Specifications:"
      echo "Port: $OE_PORT"
      echo "User service: $OE_USER"
      echo "User PostgreSQL: $OE_USER"
      echo "Code location: $OE_USER"
      echo "Addons folder: $OE_USER/$OE_CONFIG/addons/"
      echo "Start Odoo service: sudo service $OE_CONFIG start"
      echo "Stop Odoo service: sudo service $OE_CONFIG stop"
      echo "Restart Odoo service: sudo service $OE_CONFIG restart"
      echo "-----------------------------------------------------------"
    

答案2

安装nodejs将安装npm。因此只需删除nodejs然后重新安装它:

sudo apt-get remove nodejs
sudo apt-get --purge remove nodejs node npm
sudo apt-get clean
sudo apt-get autoclean
sudo apt-get -f install
sudo apt-get autoremove

您还可以使用这个修复损坏的包裹,

sudo apt-get install -f

再次尝试执行命令后,您的问题将得到解决。

相关内容