Yum crashed with Keyboard Interrupt error
Solution 1
Because yum
does not support Python3
.
You can run command vi /usr/bin/yum
, change /usr/bin/python
to /usr/bin/python2
in first line.
Thus you can run the command yum
by Python2
instead of Python3
.
Note however that this will make your setup unsupported and thus unmaintainable (as does what you did). You will likely have other similar problems in the future with other system packages.
If you want to use an alternative Python installation, consider installing it into /usr/local
, /opt
or using pyenv
.
Solution 2
This issue happens when user upgrades to python3, Just simply edit the file --> /usr/bin/yum and change to first line to --> "#!/usr/bin/python2"
The above solution wouldn't solve the all yum dependency problems, its better to run the below commands.
sudo ln -s /usr/local/bin/python3 /usr/bin/python3 (Mark latest python as python3)
sudo ln -sf /usr/bin/python2.7 /usr/bin/python (nake 2.7 as default python)
THanks, Daman
Solution 3
I'm guessing you installed Python 3.2.3 from source and used "make install" as the last command. That command has the unfortunate side-effect of replacing the system installed version command "python" with the new version. Using "make altinstall" doesn't replace "python".
The command "python" is just a symbolic link to "python2", which in turn is a symbolic link to "python2.7". You should be able to restore "python" by executing the following command:
cd /usr/bin
sudo ln -s python2 python
Solution 4
Thanks Damanvir! Changing the line in /usr/bin/yum worked!
This is a little off topic and might be removed but it might help someone.
These are the steps I used to install Python 3.7 on Centos and fix the yum error.
Download from https://www.python.org/
tar -xvf
./configure --enable-optimizations
make
make install
OR
make altinstall
make altinstall is used to prevent replacing the default python binary file /usr/bin/python.
cd /usr/bin
Remove the current symbolic link to the previous version
rm python
OUTPUT: rm: remove symbolic link ‘python’? y
Find the location of the new version
whereis python3.7
OUTPUT: python3: /usr/local/bin/python3.7
Verify this is correct
/usr/local/bin/python3.7 --version
OUTPUT: Python 3.7.0
Create a symbolic link to the location of the new version
ln -s /usr/local/bin/python3.7 python
python --version
OUTPUT: Python 3.7.0
Yum commands will show the following error:
File "/bin/yum", line 30
except KeyboardInterrupt, e:
SyntaxError: invalid syntax
Change the top line of this file from using python to python2
vi /usr/bin/yum
#!/usr/bin/python2
Reference: https://tecadmin.net/install-python-3-7-on-centos/
Solution 5
Your yum looks for python2. Let's use 'alternatives' to switch between pythons2 and python3.
- run --> sudo alternatives --config python
- Enter to keep the current selection[+], or type selection number:
If you don't configure it. How to do that?
-
sudo alternatives --install /usr/bin/python python /usr/local/bin/python3.8 60
-
sudo alternatives --install /usr/bin/python python /usr/bin/python2 50
SSAMEERR
Updated on July 05, 2022Comments
-
SSAMEERR almost 2 years
I installed the newer version of python (3.2.3) than the one available in Fedora16 (python2.7)
And now
yum
stops working. It shows the following error.[root@localhost yum-3.4.3]# yum File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax
Please advice as how to resolve the error. It would be helpful as I am not able to update or install any package.
-
yehudahs over 9 yearsI managed to do a little bit different : sudo ln -s python2.6 python
-
ThisGuyCantEven about 5 yearsin 2019, with python2 all but deprecated, one should not have to worry about linking a python3 executable to
/usr/bin/python
. It is incredibly lazy for a package to have this issue when the fix is literally to add a single character to your python2 files (ie#!/usr/bin/python2
vs#!/usr/bin/python
) -
Amir Afianian almost 5 yearsI tried all solutions, yours was the one to solve the problem.
-
ivan_pozdeev over 4 years@ThisGuyCantEven the OP mentioned that this is in Fedora 16 which is EOL since 02.2013.
-
mahendra rathod almost 4 yearsYes, you are the one who solved the problem. Good finding. Thanks
-
Gorkem over 3 yearsFor AWS Linux 2 AMI users: if you also get a OSError even updating /usr/bin/yum make sure start of file : /usr/libexec/urlgrabber-ext-down is also edited to python2
-
Searene about 3 yearsGot an error:
ln: failed to create symbolic link ‘python’: File exists
. I have to usesudo ln -fs /usr/bin/python2 /usr/bin/python
to make it work.