De alguma forma parte do meu sistema de arquivos ext3 foi corrompido e grandes porções da minha instalação python tem todos os tipos de bagunça. A única coisa que pude perceber imediatamente foi o Python levantando um erro de módulo ausente. Se eu tentei cd para os diretórios relevantes eu tenho isso:
EXT3-fs error (device mmcblk0p2): htree_dirblock_to_tree: bad entry in directory #444159: directory entry across blocks - offset=0, inode=166100, rec_len=59284, name_len=255
EXT3-fs error (device mmcblk0p2): htree_dirblock_to_tree: bad entry in directory #444137: rec_len % 4 != 0 - offset=0, inode=290535, rec_len=39605, name_len=253
Então eu decidi apenas rm -rf esses diretórios e reinstalar o NumPy. Não é tão rápido:
root@napajohn:/usr/lib/pyshared/python2.6/numpy-1.6.0# python setup.py
Running from numpy source directory.Traceback (most recent call last):
File "setup.py", line 196, in <module>
setup_package()
File "setup.py", line 173, in setup_package
from numpy.distutils.core import setup
File "/usr/lib/pyshared/python2.6/numpy-1.6.0/numpy/distutils/__init__.py", line 7, in <module>
import ccompiler
File "/usr/lib/pyshared/python2.6/numpy-1.6.0/numpy/distutils/ccompiler.py", line 7, in <module>
from distutils.ccompiler import *
File "/usr/lib/python2.6/distutils/__init__.py", line 1
d__2);
^
SyntaxError: invalid syntax
O que esse erro disse era verdade. O arquivo /usr/lib/python2.6/distutils/__init__.py iniciou a mid-expression, como se a metade superior do arquivo fosse cortada.
Então vou verificar se tenho outras versões do Python instaladas com pyversions -i
:
File "/usr/lib/python2.6/ConfigParser.py", line 1
.i,
^
SyntaxError: invalid syntax
O que está acontecendo com todos os meus arquivos? Eu percebo que essa pergunta dificilmente poderia ser respondida sem informações extras, mas antes de eu seguir esse caminho, permito-me mudar os contextos para a minha primeira solução alternativa que ingenuamente assume que nada além de python foi afetado.
Primeiro, uma pergunta: onde está o local "adequado" para instalar software adicional ou, mais especificamente, o Python? Eu escolhi / optei pela maioria dos meus descompactadores & instalando coisas que eu não baixo através do apt.
Em seguida, o problema:
root@napajohn:/opt/python/Python-2.7.3# ./configure
checking for --enable-universalsdk... no
checking for --with-universal-archs... 32-bit
checking MACHDEP... linux2
checking EXTRAPLATDIR...
checking machine type as reported by uname -m... armv7l
checking for --without-gcc... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in '/opt/python/Python-2.7.3':
configure: error: no acceptable C compiler found in $PATH
See 'config.log' for more details
Eu não tenho o gcc ?? Tudo bem, vou instalá-lo. Eu corro uma atualização e, em seguida,
root@napajohn:/opt/python/Python-2.7.3# apt-get install gcc-4.4
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
gcc-4.4 : Depends: gcc-4.4-base (= 4.4.5-8) but 4.4.5-8em1 is to be installed
Depends: cpp-4.4 (= 4.4.5-8) but 4.4.5-8em1 is to be installed
Recommends: libc6-dev (>= 2.5) but it is not going to be installed
E: Broken packages
Mas eu tenho o gcc-4.4-base e o cpp-4.4!
root@napajohn:/opt/python/Python-2.7.3# apt-get install gcc-4.4-base
Reading package lists... Done
Building dependency tree
Reading state information... Done
gcc-4.4-base is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
root@napajohn:/opt/python/Python-2.7.3# apt-get install cpp-4.4
Reading package lists... Done
Building dependency tree
Reading state information... Done
cpp-4.4 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.
Depois de fazer alguma pesquisa, acho que isso poderia ser causado por uma incompatibilidade de versão (terminologia?).
Não sei bem para onde ir a partir daqui. Também há a grande questão de saber se os problemas de arquivos estão isolados no Python. Devo executar uma verificação de fsck
disk no rootfs? Como eu faria isso em um dispositivo incorporado?
root@napajohn:/opt/python/Python-2.7.3# cat /etc/debian_version
6.0.4
root@napajohn:/opt/python/Python-2.7.3# df
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 250876 0 250876 0% /lib/init/rw
udev 10240 156 10084 2% /dev
tmpfs 250876 0 250876 0% /dev/shm
rootfs 7597856 1722208 5489688 24% /
Tags apt software-installation fsck