Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

./Install-EIO install-cli does not work, and eio_cli when installed manually does not work either. #49

Open
RyanHakurei opened this issue May 12, 2019 · 17 comments

Comments

@RyanHakurei
Copy link

RyanHakurei commented May 12, 2019

Running ./Install-EIO install-cli just produces:

INSTALL-EIO: Failed to install eio_cli!
INSTALL-EIO: Argument not understood "install-cli"
INSTALL-EIO: Try running "Install-EIO --help"

Even when installing manually via the instructions provided in install.txt running it only produces:

  File "/usr/bin/eio_cli", line 293
    print "Cache Name       : " + self.name 
                              ^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Cache Name       : " + self.name)?
@RyanHakurei RyanHakurei changed the title ./Install-EIO install-cli does not work, and eio_cli when install manually does not work either. ./Install-EIO install-cli does not work, and eio_cli when installed manually does not work either. May 12, 2019
@CPT-GrayWolf
Copy link

Check to make sure Python2 is installed.

@RyanHakurei
Copy link
Author

It is installed.
Python2

@CPT-GrayWolf
Copy link

Try running 'Install-EIO -r -i -m -l' and see what it says.

@marcin-github
Copy link

Change shebang to
#!/usr/bin/python2

@CPT-GrayWolf
Copy link

This is an, "I knew this could happen, but did nothing.", situation.

I saw the potential for something like this when I was writing Install-EIO, but decided it would likely be an edge case. Install-EIO checks for what eio-cli expects, and it expects to see python2 when calling python directly.

I'll add a fix to my existing pull request later today. (And also fix the missing exit condition under "install-cli".)

@RyanHakurei
Copy link
Author

Change shebang to
#!/usr/bin/python2

Yeah that worked, I thought that was pretty standard when wanting to call Python2 but I guess I was misinformed there.

@RyanHakurei
Copy link
Author

Try running 'Install-EIO -r -i -m -l' and see what it says.

That produces:

INSTALL-EIO: Checking Python version
INSTALL-EIO: Python version is 3.7.3, eio_cli requires python2 version 2.6.6 or higher!
INSTALL-EIO: eio_cli will not be installed
INSTALL-EIO: Complete!

@marcin-github
Copy link

On Gentoo it is configurable, admin can choose which implementation of python is run by symlink /usr/bin/python.

@RyanHakurei
Copy link
Author

Arch does something similar with Java which can be configured by archlinux-java.

@CPT-GrayWolf
Copy link

Change shebang to
#!/usr/bin/python2

Yeah that worked, I thought that was pretty standard when wanting to call Python2 but I guess I was misinformed there.

I believe that eio_cli must have been designed by someone accustomed to older systems where python2 was the expected version. It hasn't changed much over the last six years, so I'd say it's about time this got fixed.

@RyanHakurei
Copy link
Author

RyanHakurei commented May 25, 2019

Can you use this to accelerate a mdadm RAID array? Or even better can I raid 2 SSDs in Raid0 and use that to accelerate a RAID5 array (again all mdadm/softRAID).

@CPT-GrayWolf
Copy link

Can you use this to accelerate a mdadm RAID array? Or even better can I raid 2 SSDs in Raid0 and use that to accelerate a RAID5 array (again all mdadm/softRAID).

Yes. You can use it with any two block devices. That includes raw drives, partitions, LVM volumes, and hardware and software RAIDs. So long as you can see it under /dev.

Just be aware, there appears to be issues with some filesystems, particularly zfs. But is you're using zfs, it already should have caching built in. Plus the issues are typically limited to occasional errors that you can mostly just ignore without consequence (Let us know if you see any though).

@RyanHakurei
Copy link
Author

The Raid5 array is ext4 and the Raid0 SSD array is going to be f2fs so I would assume I am good to go.

@CPT-GrayWolf
Copy link

You don't need to format the SSDs, you can just directly use the block device. You don't even need a partition. The filesystem will probably get destroyed by eio once it starts caching blocks to it.

I've had it throw errors for ext4 in write-through mode. But you should be fine.

@Demon-tk
Copy link

Receiving a similar message on my Ubuntu 20.10 machine. Have both Python 3 and 2 installed.

Exact error when running sudo ./Install-EIO -r -i -m -l is

INSTALL-EIO: Checking Python version
INSTALL-EIO: Python version is , eio_cli requires python2 version 2.6.6 or higher!
INSTALL-EIO: eio_cli will not be installed
INSTALL-EIO: Complete!

Changing the shebang at the top of the file does not resolve the issue.

Please advise.

@rafa761
Copy link

rafa761 commented Jul 11, 2022

Same as @Demon-tk here

Using PopOS 22.04

Guys do you have any advise about what we can do to install EnhanceIO?

sudo ./Install-EIO -r -i -m -l

./Install-EIO: linha 28: /usr/bin/python: Arquivo ou diretório inexistente
INSTALL-EIO: Checking Python version
INSTALL-EIO: Python version is , eio_cli requires python2 version 2.6.6 or higher!
INSTALL-EIO: eio_cli will not be installed
INSTALL-EIO: Complete!

@Ristovski
Copy link

Ristovski commented Jul 11, 2022

@Demon-tk @rafa761 The Install-EIO script has a separate command that checks the version:

PYTHON_VERSION=$(${BPREFIX}python -c 'import platform; python_version=platform.python_version(); print (python_version)')

If the default python command resolves to python3, this is what is causing your error (judging by the if [[ "$PYTHON_VERSION" =~ ^2\.(6\.([6-9]|[1-9][0-9]+)|([7-9]|[1-9][0-9]+)\.[0-9]+)(rc[0-9]+)?$ ]] check).

Changing the python to python2.7 (or any other supported version of python 2.x) along with the shebang to python2.x in all the dependent scripts, should resolve the issue.

One thing that is odd is why the reported detected python version is not set in your outputs, while the command that sets it is valid:

$ python -c 'import platform; python_version=platform.python_version(); print (python_version)'
3.8.12
$ python2.7 -c 'import platform; python_version=platform.python_version(); print (python_version)'
2.7.12

This might be do to python being installed to something that BPREFIX is not set to. You can check with which python, or change ${BPREFIX}python to python

Edit: Do note EnhanceIO is no longer maintained and will not compile on newer kernels, you can find numerous issues about that in this repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants