Opened 11 years ago
Closed 11 years ago
#43194 closed defect (worksforme)
Failed to initialize Macports
Reported by: | awil1026.1090@… | Owned by: | neverpanic (Clemens Lang) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | 2.2.1 |
Keywords: | Cc: | ||
Port: |
Description (last modified by neverpanic (Clemens Lang))
My port command does not function at all. Here is the output i get when using s simple port command:
%% sudo port error reading "file6": illegal operation on a directory while executing "gets $f" (procedure "auto_load_index" line 23) invoked from within "auto_load_index" (procedure "auto_load" line 30) invoked from within "auto_load $name [uplevel 1 {::namespace current}]" (autoloading "::tcl::tm::UnknownHandler") (procedure "::unknown" line 30) invoked from within "::tcl::tm::UnknownHandler {::tcl::MacOSXPkgUnknown ::tclPkgUnknown} msgcat 0-" ("package unknown" script) invoked from within "package require msgcat" (file "/opt/local/share/macports/Tcl/registry2.0/registry.tcl" line 40) invoked from within "source /opt/local/share/macports/Tcl/registry2.0/registry.tcl" ("package ifneeded registry 1.0" script) invoked from within "package require registry 1.0" (procedure "mportinit" line 444) invoked from within "mportinit ui_options global_options global_variations" Error: /opt/local/bin/port: Failed to initialize MacPorts, error reading "file6": illegal operation on a directory
I've searched the for a fix, but can't find anything
Attachments (1)
Change History (13)
comment:1 Changed 11 years ago by neverpanic (Clemens Lang)
Component: | ports → base |
---|---|
Description: | modified (diff) |
Keywords: | port file6 removed |
Owner: | changed from macports-tickets@… to cal@… |
comment:2 Changed 11 years ago by awil1026.1090@…
here is the output of that command:
#!/bin/sh # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4 # Run the Tcl interpreter \ exec /usr/bin/tclsh "$0" "$@" iMac:~ imac$ echo 'puts [info patchlevel]' | /usr/bin/tclsh 8.5.9
comment:3 Changed 11 years ago by neverpanic (Clemens Lang)
OK, so the problem isn't with the version of Tcl used, but it seems there's a file or directory in one of the paths referenced by your $auto_path
variable that shouldn't be there.
What are the contents of /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts
? Do you have a file called tclIndex
there? Also, does tm.tcl
exist in this directory and does that file contain proc ::tcl::tm::UnknownHandler
?
From the error message and reading the source code it seems that in one of the directories printed by
echo 'puts $auto_path' | /usr/bin/tclsh
there is a directory called tclIndex
. Is that correct?
comment:4 follow-up: 5 Changed 11 years ago by awil1026.1090@…
Yes, I have the tclIndex and the tm.tcl with the line proc ::tcl::tm::UnknownHandler {original name args} in the /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts directory.
The last question: there is a directory called tclIndex, are you asking if there is a tclIndex folder within the /usr/bin/tclsh directory?
The answer to that question would be no, but if you are reemphasizing whether I had the tclIndex folder within the /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts directory, then yes as stated above.
comment:5 Changed 11 years ago by neverpanic (Clemens Lang)
Replying to awil1026.1090@…:
Yes, I have the tclIndex and the tm.tcl with the line proc ::tcl::tm::UnknownHandler {original name args} in the /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts directory.
OK. tm.tcl
obviously is a file, but is tclIndex
a file aswell, or is it a directory? It should be a file, if it's a directory your Tcl installation is broken.
The last question: there is a directory called tclIndex, are you asking if there is a tclIndex folder within the /usr/bin/tclsh directory?
No, I'm not asking if there's a tclIndex
folder in /usr/bin/tclsh
, because /usr/bin/tclsh
is a file.
The answer to that question would be no, but if you are reemphasizing whether I had the tclIndex folder within the /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts directory, then yes as stated above.
Yeah, so that's the problem here. I'm not sure how you ended up with a folder called tclIndex
in this system directory. Maybe your filesystem is flipping some bits it shouldn't? Try running repair from Disk Utility, and if that doesn't fix it, do the following:
- Move
/System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts/tclIndex
aside, e.g. totclIndex.bak
- Recreate the
tclIndex
file by runningcd /System/Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts && echo 'auto_mkindex .' | sudo /usr/bin/tclsh
- Make sure the new
tclIndex
file has the correct permissions (rw for root, readable by group and world).
comment:6 Changed 11 years ago by awil1026.1090@…
I made a mistake, the tclIndex is a file (and not a folder as I previously said) in that location. I typed tclIndex folder unintentionally.
Changed 11 years ago by neverpanic (Clemens Lang)
Attachment: | find_the_culprit.tcl added |
---|
comment:7 Changed 11 years ago by neverpanic (Clemens Lang)
I have attached a script. Please download it, make it executable, run it and paste its output. It recreates the steps that fail in auto_load_index and prints some debugging information that should easily pinpoint the problem.
comment:8 Changed 11 years ago by awil1026.1090@…
here is the output I got from terminal
iMac:Downloads imac$ tclsh find_the_culprit.tcl
file /Library/Frameworks/Tcl.framework/Versions/8.5/Resources/Scripts/tclIndex
none /Library/Frameworks/Tcl.framework/Versions/8.5/Resources/tclIndex
none /usr/local/lib/tclIndex
none ~/Library/Tcl/tclIndex
none /Library/Tcl/tclIndex
none /System/Library/Tcl/tclIndex
none ~/Library/Frameworks/tclIndex
none /Library/Frameworks/tclIndex
none /System/Library/Frameworks/tclIndex
none /Library/Tcl/teapot/package/macosx10.5-i386-x86_64/lib/tclIndex
none /Library/Tcl/teapot/package/tcl/lib/tclIndex
comment:9 Changed 11 years ago by neverpanic (Clemens Lang)
OK, so the problem isn't in any of the default entries of $auto_path
. IIRC MacPorts adds a directory to the $auto_path
variable during initialization, so maybe that one's the culprit. That directory would be /opt/local/share/macports/Tcl
. Do you have a directory called tclIndex
there?
comment:11 Changed 11 years ago by neverpanic (Clemens Lang)
I'm not sure where to go from there then. You could try installing the 2.3 beta over your current installation, that might fix things.
There's not much MacPorts can do about this, though -- we rely on a working Tcl installation, and yours doesn't appear to be.
comment:12 Changed 11 years ago by neverpanic (Clemens Lang)
Resolution: | → worksforme |
---|---|
Status: | new → closed |
Please use WikiFormatting when posting in Trac.
I'm not sure why
auto_load_index
is trying to read a directory namedfile6
from some path where it probably shouldn't be, but I think the error might also be occurring because of Tcl 8.6. Please provide the output of