NETGEAR is aware of a growing number of phone and online scams. To learn how to stay safe click here.
Forum Discussion
smst
Jul 18, 2023Aspirant
ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
Hi all,
I have a ReadyNAS 104. Last night I checked the dashboard and saw that firmware 6.10.8 was available to install, so I installed it. One of my apps stopped working, and some command-line investigation tells me that the relevant .py file that launches the service uses /usr/bin/python . That is a symlink to python2.7, which doesn't exist. python2.6 does exist.
It looks like Python 2.6 was installed in 2013, and the symlink to 2.7 was installed in 2015. My guess is that the firmware update removed Python 2.7 but didn't update the symlink to point back to 2.6, thereby breaking anything that used just 'python'. I can update the symlinks if necessary, although I don't know if the app will run correctly (I can look into that on the app's site) -- but my question is: what happened to 2.7? I know it's out of support, but why would a firmware update remove it but leave the older 2.6?
I did try installing 2.7 with 'apt-get install python2.7' (as root) and got this output:
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
cups : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
cups-client : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
cups-core-drivers : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
cups-daemon : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
libcupscgi1 : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
libcupsimage2 : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
libcupsmime1 : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
libcupsppdc1 : Depends: libcups2 (= 1.7.5-11+deb8u8) but 1.7.5-11+deb8u6 is to be installed
libpython2.7-stdlib : Depends: libpython2.7-minimal (= 2.7.9-2+deb8u5) but it is not going to be installed
python-minimal : Depends: python2.7-minimal (>= 2.7.9-1~) but it is not going to be installed
python2.7 : Depends: python2.7-minimal (= 2.7.9-2+deb8u5) but it is not going to be installed
systemd-cron : Conflicts: cron-daemon
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
I'm wary of following the advice there because it looks like it wants to downgrade some things. However those things are mostly cups, which I may have installed myself (a few years ago I was experimenting with using the 104 as a print server after Canon stopped supporting Google Cloud Print).
So a follow-up: is cups installed as part of the usual firmware? If not, I could just remove it and be more likely to be able to install Python 2.7.
Thanks,
Steve
9 Replies
Replies have been turned off for this discussion
- smstAspirant
Update on the app: I've found that for the version I have, it requires Python 2.7 and above. So I can't just switch to running under 2.6.
PS I tried adding the 104 to this post with the "Associated Products" field, but I can't seem to make it show me any NAS products at all.
- StephenBGuru - Experienced User
smst wrote:
So a follow-up: is cups installed as part of the usual firmware?
This is what I see when I look in my own OS partition:
find . *cups* | grep -i cups ./usr/lib/x86_64-linux-gnu/libcups.so.2 ./usr/lib/cups ./usr/lib/cups/backend ./usr/lib/cups/backend/smb ./var/lib/dpkg/info/libcups2:amd64.list ./var/lib/dpkg/info/libcups2:amd64.symbols ./var/lib/dpkg/info/libcups2:amd64.shlibs ./var/lib/dpkg/info/libcups2:amd64.postrm
- smstAspirant
I have a lot more than that, even in /usr/lib, which makes me think I have in fact installed some extras at some point. Since I'm not using the NAS as a print server anyway, I wonder if I should just force the apt-get to update everything then -- it doesn't matter to me if cups breaks, as long as it isn't going to matter to some app that thinks it needs cups to work.
Thanks for the reply -- would you be able to check what you have in terms of /usr/bin/python* please?
- StephenBGuru - Experienced User
smst wrote:
Thanks for the reply -- would you be able to check what you have in terms of /usr/bin/python* please?
root@NAS:~# ls -als /usr/bin/python* 4 lrwxrwxrwx 1 root root 9 Mar 16 2015 /usr/bin/python -> python2.7 4 lrwxrwxrwx 1 root root 9 Mar 16 2015 /usr/bin/python2 -> python2.7 root@NAS:~#
# ls /usr/lib/python2.7 _abcoll.pyc dircache.pyc _LWPCookieJar.pyc pstats.py sunau.py abc.pyc dis.pyc macpath.py pstats.pyc sunau.pyc aifc.py dist-packages macpath.pyc pty.py symbol.py aifc.pyc distutils macurl2path.py pty.pyc symbol.pyc antigravity.py doctest.py macurl2path.pyc pyclbr.py symtable.py antigravity.pyc doctest.pyc mailbox.py pyclbr.pyc symtable.pyc anydbm.py DocXMLRPCServer.py mailbox.pyc py_compile.pyc _sysconfigdata.pyc anydbm.pyc DocXMLRPCServer.pyc mailcap.py pydoc_data sysconfig.pyc argparse.egg-info dumbdbm.py mailcap.pyc pydoc.py tabnanny.py argparse.py dumbdbm.pyc markupbase.py pydoc.pyc tabnanny.pyc argparse.pyc dummy_threading.py markupbase.pyc _pyio.py tarfile.py ast.py dummy_threading.pyc md5.pyc _pyio.pyc tarfile.pyc ast.pyc dummy_thread.py mhlib.py Queue.py telnetlib.py asynchat.py dummy_thread.pyc mhlib.pyc Queue.pyc telnetlib.pyc asynchat.pyc email mimetools.py quopri.py tempfile.pyc asyncore.py encodings mimetools.pyc quopri.pyc test asyncore.pyc ensurepip mimetypes.py random.pyc textwrap.pyc atexit.pyc filecmp.py mimetypes.pyc repr.pyc this.py audiodev.py filecmp.pyc MimeWriter.py re.pyc this.pyc audiodev.pyc fileinput.py MimeWriter.pyc rexec.py _threading_local.py base64.pyc fileinput.pyc mimify.py rexec.pyc _threading_local.pyc BaseHTTPServer.py fnmatch.pyc mimify.pyc rfc822.py threading.py BaseHTTPServer.pyc formatter.py modulefinder.py rfc822.pyc threading.pyc Bastion.py formatter.pyc modulefinder.pyc rlcompleter.py timeit.py Bastion.pyc fpformat.py _MozillaCookieJar.py rlcompleter.pyc timeit.pyc bdb.py fpformat.pyc _MozillaCookieJar.pyc robotparser.py toaiff.py bdb.pyc fractions.py multifile.py robotparser.pyc toaiff.pyc binhex.py fractions.pyc multifile.pyc runpy.pyc tokenize.pyc binhex.pyc ftplib.py multiprocessing sched.py token.pyc bisect.pyc ftplib.pyc mutex.py sched.pyc traceback.pyc bsddb functools.pyc mutex.pyc sets.py trace.py calendar.pyc __future__.pyc netrc.py sets.pyc trace.pyc CGIHTTPServer.py genericpath.pyc netrc.pyc sgmllib.py tty.py CGIHTTPServer.pyc getopt.pyc new.py sgmllib.pyc tty.pyc cgi.py getpass.py new.pyc sha.pyc types.pyc cgi.pyc getpass.pyc nntplib.py shelve.py unittest cgitb.py gettext.py nntplib.pyc shelve.pyc urllib2.py cgitb.pyc gettext.pyc ntpath.py shlex.py urllib2.pyc chunk.py glob.pyc ntpath.pyc shlex.pyc urllib.py chunk.pyc gzip.py nturl2path.py shutil.pyc urllib.pyc cmd.py gzip.pyc nturl2path.pyc SimpleHTTPServer.py urlparse.py cmd.pyc hashlib.pyc numbers.py SimpleHTTPServer.pyc urlparse.pyc codecs.pyc heapq.pyc numbers.pyc SimpleXMLRPCServer.py UserDict.pyc codeop.py hmac.py opcode.pyc SimpleXMLRPCServer.pyc UserList.py codeop.pyc hmac.pyc optparse.pyc sitecustomize.pyc UserList.pyc code.py hotshot os2emxpath.py site.pyc user.py code.pyc htmlentitydefs.py os2emxpath.pyc smtpd.py user.pyc collections.pyc htmlentitydefs.pyc os.pyc smtpd.pyc UserString.py colorsys.py htmllib.py _osx_support.py smtplib.py UserString.pyc colorsys.pyc htmllib.pyc _osx_support.pyc smtplib.pyc uuid.py commands.py HTMLParser.py pdb.doc sndhdr.py uuid.pyc commands.pyc HTMLParser.pyc pdb.py sndhdr.pyc uu.py compileall.pyc httplib.py pdb.pyc socket.pyc uu.pyc compiler httplib.pyc __phello__.foo.py SocketServer.py warnings.pyc ConfigParser.pyc ihooks.py __phello__.foo.pyc SocketServer.pyc wave.py contextlib.pyc ihooks.pyc pickle.pyc sqlite3 wave.pyc cookielib.py imaplib.py pickletools.py sre_compile.pyc weakref.pyc cookielib.pyc imaplib.pyc pickletools.pyc sre_constants.pyc _weakrefset.pyc Cookie.py imghdr.py pipes.py sre_parse.pyc webbrowser.py Cookie.pyc imghdr.pyc pipes.pyc sre.pyc webbrowser.pyc copy.pyc importlib pkgutil.pyc ssl.pyc whichdb.py copy_reg.pyc imputil.py platform.pyc stat.pyc whichdb.pyc cProfile.py imputil.pyc plat-x86_64-linux-gnu statvfs.py wsgiref cProfile.pyc inspect.pyc plistlib.py statvfs.pyc wsgiref.egg-info csv.py io.pyc plistlib.pyc StringIO.pyc xdrlib.py csv.pyc json popen2.pyc stringold.py xdrlib.pyc ctypes keyword.pyc poplib.py stringold.pyc xml curses lib2to3 poplib.pyc stringprep.pyc xmllib.py dbhash.py lib-dynload posixfile.py string.pyc xmllib.pyc dbhash.pyc lib-tk posixfile.pyc _strptime.py xmlrpclib.py decimal.py LICENSE.txt posixpath.pyc _strptime.pyc xmlrpclib.pyc decimal.pyc linecache.pyc pprint.py struct.pyc zipfile.py difflib.py locale.pyc pprint.pyc subprocess.pyc zipfile.pyc difflib.pyc logging profile.py sunaudio.py dircache.py _LWPCookieJar.py profile.pyc sunaudio.pyc
I am running 6.10.9. Though I never explicitly installed python, I did install plex a long time ago - which does include python2.7 I might not have installed plex on one of my backup NAS - I'll check when I have a chance and I'll follow up..
Related Content
NETGEAR Academy

Boost your skills with the Netgear Academy - Get trained, certified and stay ahead with the latest Netgear technology!
Join Us!