| @@ -154,6 +154,8 @@ EOF | |||
| #sudo apt-get autoremove | |||
| #sudo apt-get autoclean | |||
| sudo apt install openjdk-22-jre-headless | |||
| fi | |||
| @@ -0,0 +1,46 @@ | |||
| # https://www.geeksforgeeks.org/how-to-install-sql-server-express-in-linux/ | |||
| # https://learn.microsoft.com/en-us/answers/questions/1685683/how-to-install-sql-server-2022-on-ubuntu-server-24 | |||
| curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-2.5-0_2.5.13+dfsg-5_amd64.deb | |||
| sudo dpkg -i libldap-2.5-0_2.5.13+dfsg-5_amd64.deb | |||
| curl -O http://debian.mirror.ac.za/debian/pool/main/o/openldap/libldap-dev_2.5.13+dfsg-5_amd64.deb | |||
| sudo dpkg -i libldap-dev_2.5.13+dfsg-5_amd64.deb | |||
| #curl -OL http://archive.ubuntu.com/ubuntu/pool/main/o/openldap/libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb | |||
| #sudo apt-get install ./libldap-2.5-0_2.5.18+dfsg-0ubuntu0.22.04.1_amd64.deb | |||
| wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - | |||
| curl -fsSL https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list | sudo tee /etc/apt/sources.list.d/mssql-server-2022.list | |||
| # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/22.04/mssql-server-2022.list)” | |||
| # sudo add-apt-repository “$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)” | |||
| sudo apt update && sudo apt install -y mssql-server | |||
| sudo /opt/mssql/bin/mssql-conf setup | |||
| #sudo systemctl status mssql-server.service | |||
| sudo systemctl status mssql-server --no-pager | |||
| curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list | |||
| sudo apt update && sudo apt install -y mssql-tools unixodbc-dev | |||
| sudo ln -s /opt/mssql-tools/bin/sqlcmd /usr/local/bin | |||
| sqlcmd -S localhost -U SA | |||
| setfacl -R -m u:mssql:rwx ~/elvt/pgsys/elixir-data/dbs/elixir/run | |||
| SELECT OBJECT_SCHEMA_NAME(object_id) AS SchemaName, name AS TableName | |||
| FROM master.sys.objects WHERE type_desc = 'USER_TABLE' AND is_ms_shipped = 0; | |||
| # Install redis | |||
| # https://docs.vultr.com/how-to-install-redis-on-ubuntu-24-04 | |||
| sudo apt install redis-server | |||
| sudo systemctl enable redis-server.service | |||
| sudo systemctl start redis | |||
| # sqlcmd -S localhost -U sa -Q "RESTORE DATABASE [ELIXIR_DEV] FROM DISK = N'/home/elvt/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' WITH FILE = 1, NOUNLOAD, REPLACE, NORECOVERY, STATS = 5" | |||
| cp /home/elvt/pgsys/elixir-data/dbdumps/reduced_elixir_backup' /tmp | |||
| sqlcmd -S localhost -U sa -Q "RESTORE DATABASE ELIXIR FROM DISK = '/tmp/reduced_elixir_backup' WITH MOVE 'Elixir' TO '/var/opt/mssql/data/elixir.mdf', MOVE 'Elixir_log' TO '/var/opt/mssql/data/elixir_log.ldf'" | |||
| @@ -1,5 +1,6 @@ | |||
| const { any } = require('bbhverse'); | |||
| const fs = require('fs') | |||
| var path = require('path'); | |||
| var cli = require('./cliverse') | |||
| var nodeShellExec = cli.nodeShellExec; | |||
| @@ -34,13 +35,16 @@ var nodeShellExec = cli.nodeShellExec; | |||
| var __isElevated = null; | |||
| var shell_verse = { | |||
| // getCommonTask is agnostic of whether we are running in an elevated shell or not. It runs in either case. | |||
| getCommonTask( taskToRun ){ return ()=>{ return shell_verse.runTask(taskToRun) }} | |||
| init( o ){ Object.assign(this, o) } | |||
| , downloadsdir : '../Downloads' | |||
| , getCommonTask( taskToRun ){ return ()=>{ return shell_verse.runTask(taskToRun) }} | |||
| , runTask : ( taskToRun ) => { | |||
| if (__isElevated) return shell_verse.runElevated( taskToRun ) | |||
| else return shell_verse.runNonElevated( taskToRun ) | |||
| } | |||
| , elevatedRunner( taskToRun ){ | |||
| , elevatedRunner( taskToRun, inBatch ){ | |||
| // PB : TODO -- Should be called only when we are in an elevated shell that was already requested from an unelevated shell with a batch of tasks. | |||
| try { | |||
| // PB : We do not need IPC in linux. Until a real sudo elevation is required eveything works in non elevated mode... | |||
| @@ -62,7 +66,7 @@ var shell_verse = { | |||
| } | |||
| catch (e) { | |||
| console.error('Error Invalid command : ' + e) | |||
| // fs.writeFileSync('run.done', 'error') | |||
| if(!inBatch) fs.writeFileSync('run.done', 'error') | |||
| } | |||
| finally { | |||
| } | |||
| @@ -81,7 +85,8 @@ var shell_verse = { | |||
| if(taskToRun.processedArgs.skipelevated) return Promise.resolve({ skipped : true }); | |||
| if(__isElevated) { | |||
| if (__isElevated) { | |||
| return shell_verse.elevatedRunner(taskToRun) | |||
| } | |||
| else { | |||
| @@ -116,7 +121,7 @@ var shell_verse = { | |||
| }).catch((e) => { | |||
| e.info = taskToRun.info; | |||
| if(taskToRun.errHandler) throw taskToRun.errHandler(e) | |||
| taskToRun.statuslog.statuslog(e); | |||
| taskToRun.statuslog.statuslog(e); // | |||
| // console.error(e) | |||
| throw e; | |||
| }).finally(()=>{}) | |||
| @@ -174,6 +179,20 @@ var shell_verse = { | |||
| return elevatedRunner(taskToRun); | |||
| } | |||
| , iswin(){ return false} | |||
| , ensureDirectoryExistence(filePath) { | |||
| var dirname = path.dirname(filePath); | |||
| if (fs.existsSync(dirname)) { | |||
| return filePath; | |||
| } | |||
| this.ensureDirectoryExistence(dirname); | |||
| fs.mkdirSync(dirname); | |||
| return filePath; | |||
| } | |||
| , generateDependencies(){ | |||
| } | |||
| , iswin(){ return false} | |||
| , islin(){ return true} | |||
| } | |||