Giter Club home page Giter Club logo

Comments (14)

faressoft avatar faressoft commented on May 14, 2024 23

@spelunk I will consider storing the files in the temporary directory

For now you can solve the issue by fixing the npm permissions

chown -R faressoft /usr/local/lib/node_modules
chown -R faressoft /usr/local/bin
chown -R faressoft /usr/local/share

Change faressoft to your username.

from terminalizer.

volcan01010 avatar volcan01010 commented on May 14, 2024 6

Using Ubuntu 18.04, I got Terminalizer to work as follows:

# Install npm (requires dependencies)
sudo apt install npm node-gyp nodejs-dev libssl1.0-dev

# Install terminalizer globally
sudo npm install -g terminalizer

# Remove the electron that comes with terminalizer
sudo rm -rf /usr/local/lib/node_modules/terminalizer/node_modules/electron/

# Add electron globally - based on this SO answer https://stackoverflow.com/a/52033822/3508733
sudo npm install -g electron --unsafe-perm=true --allow-root

# By this point, I could record and play sessions, but got the error in this issue when I tried to render them.
# Symlink the hardcoded rendering path to where terminalizer is actually installed on Ubuntu
sudo mkdir -p /usr/lib/node_modules/
sudo ln -s /usr/local/lib/node_modules/terminalizer/ /usr/lib/node_modules/terminalizer

# Do the workaround above
sudo chown -R <user> /usr/lib/node_modules/terminalizer/render
sudo chmod 4775 /usr/local/lib/node_modules/electron/dist/chrome-sandbox 

Thanks @faressoft and @paralllax!

from terminalizer.

nick4fake avatar nick4fake commented on May 14, 2024 6

@faressoft are you serious? Everyone, never do something like that.

As for this issue tools should not try to write anything to library paths. chmod solutions is something temporary before there is a real temp directory fix.

As another temporary solution we could symlink /usr/lib/node_modules/terminalizer/render/ to /tmp or some user folder (once again, this still is not something npm users should really do).

from terminalizer.

festum avatar festum commented on May 14, 2024 3

Why I'm still facing this issue it's 2023!

from terminalizer.

spelunk avatar spelunk commented on May 14, 2024 2

Messing with system folder permissions is not a great approach. @faressoft is there a specific reason why you have to write to a potential system folder rather than a temp folder or the current directory?

from terminalizer.

volcan01010 avatar volcan01010 commented on May 14, 2024 1

I've created a Gist with these instructions and also instructions for Ubuntu 20.04.

https://gist.github.com/volcan01010/6fcf7ae1f4975474ba9aac27efe17b84

I gave a thumbs down to the workaround above (chown /usr/local...). These files are owned by root for security. This would be an especially bad idea on a shared system.

from terminalizer.

faressoft avatar faressoft commented on May 14, 2024 1

Fixed in #226

from terminalizer.

David-OConnor avatar David-OConnor commented on May 14, 2024

Fix doesn't work for me.

from terminalizer.

paralllax avatar paralllax commented on May 14, 2024

If anyone still needs a work around, this worked for me.

sudo chown -R <user> /usr/lib/node_modules/terminalizer/render/
sudo chmod 4775 /usr/lib/node_modules/terminalizer/node_modules/electron/dist/chrome-sandbox

from terminalizer.

rsalmei avatar rsalmei commented on May 14, 2024

This is very bad. Using 0.7.2 and still doesn't work.

from terminalizer.

rsalmei avatar rsalmei commented on May 14, 2024

Hey @volcan01010 ,

Using your exact steps in ubuntu 20.04, I got:

Error:
  Error: /usr/local/lib/node_modules/terminalizer/node_modules/electron/dist/electron: error while loading shared libraries: libnss3.so: cannot open shared object file: No such file or directory

I obviously tried to sudo apt install libnss3, which even having worked, has led me to:

Error:
  Error: /usr/local/lib/node_modules/terminalizer/node_modules/electron/dist/electron: error while loading shared libraries: libgdk_pixbuf-2.0.so.0: cannot open shared object file: No such file or directory

Which I resolved with sudo apt install librust-gdk-pixbuf-sys-dev, but then led me to:

Error:
  Error: /usr/local/lib/node_modules/terminalizer/node_modules/electron/dist/electron: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory

And then I've given up. Are you sure you had a clean machine? I've just started this one on aws, and those instructions don't work.
Thanks anyway.

from terminalizer.

rsalmei avatar rsalmei commented on May 14, 2024

I've just found out this also makes it impossible to open two shells and start two render processes simultaneously!
I was at a very slow rendering, with more than 3000s still to go when I tried to speed things up and render another one in another shell... Bad mistake, to my astonishment it not only didn't work but also broke the first one!! 😞

from terminalizer.

Licenser avatar Licenser commented on May 14, 2024

+1 to fixing this, it sadly makes it super hard to use terminalizer on a linux system

from terminalizer.

xsebek avatar xsebek commented on May 14, 2024

@faressoft could you please at least handle the issue gracefully with a message like:

Error:
  Missing access to global installation folder ('/usr/local/lib/node_modules/terminalizer/render/frames').
  Please see https://github.com/faressoft/terminalizer/issues/29 for a workaround.

I would like to use terminalizer globally, so local installation where permissions are correct (?) does not work for me.

The GIF rendering is the main reason I want to use terminalizer and this makes it needlessly harder. 😞

from terminalizer.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.