- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
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.
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
@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
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
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?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
@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..
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
Definitely due to plex. My backup Pro 6 NAS doesn't have Plex installed, and just has this:
root@PRO:~# ls -als /usr/lib/python2.7
total 0
0 drwxr-xr-x 1 root root 26 Aug 27 2018 .
0 drwxr-xr-x 1 root root 1680 Jun 4 15:11 ..
0 drwxr-xr-x 1 root root 20 Jun 4 15:10 dist-packages
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
@smst wrote: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.
If you mean doing an apt-get upgrade, then absolutely not. That will break a whole lot more (assuming you've already dealt with the Debian 8 repository being archived, so it works at all).
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
I didn't, but I appreciate the warning. I mean that apt says in its error output that I could run:
apt-get -f install
to make the python2.7 install run. I just want Python 2.7 back, to be able to run an app that relies on it. (As I said, I don't get why a firmware update would remove python2.7 but leave python2.6.)
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
I have decided to simply build Python 2.7 from source, and have now discovered that there's no 'make' here! Before I go looking for how to install that, I'd like to check here again: is there a ReadyNAS-specific solution here, perhaps a NetGear repo where I can get a working 'make'?
- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Re: ReadyNAS 104 [6.10.8] - Python 2.7 has disappeared
Building from source didn't work, but I did get some success in the end.
I had misinterpreted the apt-get error message. I'd run apt-get install python2.7 and apt-get told me to run apt-get -f install to fix the installation -- but I thought it meant to run apt-get -f install python2.7 (ie just to insert a -f option with my existing args). So that didn't do anything. Running the actual command it printed, without any package names, caused it to clean up cups and so on, and then I was able to install Python 2.7 again. (I did muck around with repo sources before hitting upon the right answer and I don't know to what extent that was necessary in the end.)
So my app is running again, but with one problem: openssl doesn't like a particular website that the app wants to use, which is related to the expiry of Let's Encrypt's X3 certificate. I saw this before, some years back, and was able to fix it by disabling the expired cert at my end (so openssl fell back to a different root that had cross-signed, I think), but that solution no longer works. I'm not sure why it's stopped working in fact, but I assume the firmware update did it.
For now I've been able to disable SSL checking in the app, which isn't ideal but will do to get things working again until I can figure out the cert problem; if I need help with that, I'll make a new post.
Thanks to all who chipped in with ideas!