我正在嘗試在 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 回复: v8.1 時,我已經完成了。

答案1

我有一個更好的解決方案,可以對其他人有幫助。我剛剛修改了現有的腳本,它的效果非常好。

我修改了延特·範·吉內肯 劇本

  • 更改需求庫安裝過程。

  • 新增新的 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

再次嘗試點擊命令後,您的問題就會得到解決。

相關內容