Macports buộc kích hoạt tất cả các cổng


0

Khi cố gắng cài đặt SciTE

sudo port install scite

cổng dừng tại

Lỗi: org.macports.activate cho cổng gettext được trả về: Lỗi hình ảnh: / opt / local / bin / autopoint đã tồn tại và không thuộc về một cổng đã đăng ký. Không thể kích hoạt cổng gettext. Sử dụng 'port -f kích hoạt gettext ' để buộc kích hoạt.

nhưng nếu tôi chạy sudo port -f activate gettextvà tái thử cài đặt scite, tôi kết thúc với thông báo lỗi tương tự, lần này với /opt/local/lib/libffi.6.dyliblibffi và vân vân và vân vân ...

Làm cách nào tôi có thể yêu cầu Macports buộc kích hoạt tất cả các cổng cản trở việc cài đặt SciTE mà không phải chạy lại cài đặt gói tôi thực sự muốn và không phải sao chép-dán mỗi lệnh kích hoạt?


1
Câu hỏi rõ ràng là điều gì xảy ra nếu bạn sao lưu máy mac và sau đó xóa tệp vấn đề /opt/local/bin/autopoint ?
bmike

Bạn đã nâng cấp OSX kể từ khi cài đặt Macports hoặc khôi phục / chọn từ bản sao lưu?
Đánh dấu

@bmike đó là một tệp khác nhau mỗi lần, tôi đã làm cho nó rõ ràng hơn bây giờ.
qubodup

@Mark Tôi không thể nhớ tất cả những gì / opt / content đạt được ở đó. Tôi đã cài đặt bia trước đó. Nhiều khả năng hơn: có lẽ bằng cách cài đặt một hoặc nhiều gói được xuất từ ​​Macports mà tôi không biết.
qubodup

Ôi trời ơi - bạn có thể cần phải tuyên bố / từ chối phá sản và xóa / gỡ cài đặt. Tôi thành thạo hơn về homebrew vì vậy tôi không thể tư vấn cho bạn chi tiết cụ thể ở đây .. Hy vọng rằng người dùng cổng có thể chỉ ra cách gỡ cài đặt hoặc sửa chữa thiết lập bị hỏng như bạn đang báo cáo.
bmike

Câu trả lời:


2

Tôi đã có thể cài đặt cổng mong muốn bằng cách tự động hóa quá trình kích hoạt. Ứng dụng không chạy được do một số vấn đề về phiên bản thư viện và tôi dường như không thể sửa chúng nhưng đó là câu chuyện cho câu trả lời khác hoặc câu hỏi khác.

  1. Tạo một tập lệnh liên tục cố gắng cài đặt cổng và tự động kích hoạt mạnh mẽ cổng được phát hiện đang chặn nó. Sao chép dán sau đây vào một tập tin và gọi nóport-instact.sh

    if [ "$EUID" -ne 0 ]
      then echo "Please run as root"
      exit
    fi
    target="$1"
    while [ 1 ]
    do
        echo trying to install "$target"
        if [[ $(port installed "$target" | grep "$target") ]]; then echo "$target" present; break; fi
        line=`port install "$target" 2>&1 > /dev/tty | grep "port -f activate"`
        package=$(echo $line | sed -e "s/^.*port -f activate //" -e "s/. .*//")
        if [ "$package" = "$oldpackage" ]; then echo double \""$package"\"; break; fi
        oldpackage="$package"
        echo activating "$package"
        port -f activate "$package"
    done
  2. Làm cho tập tin thực thi thông qua chmod +x port-instact.sh

  3. Chạy nó với quyền root sudo ./port-instact.sh scitevà chờ


Ồ, thật ngạc nhiên khi đây không phải là một lựa chọn thường xuyên trong MacPorts. Cảm ơn!
sudo

sẽ tốt hơn nữa nếu tất cả "Tiếp tục? [Y / n]: Y" có thể được chuyển sang yes.
Sophia Feng

0

Xóa mọi thứ Macports và cài đặt lại nó cho phép bạn thường cài đặt các cổng.

Sử dụng lệnh rm phức tạp từ hướng dẫn Macports (gỡ cài đặt) :

sudo rm -rf \
        /opt/local \
        /Applications/DarwinPorts \
        /Applications/MacPorts \
        /Library/LaunchDaemons/org.macports.* \
        /Library/Receipts/DarwinPorts*.pkg \
        /Library/Receipts/MacPorts*.pkg \
        /Library/StartupItems/DarwinPortsStartup \
        /Library/Tcl/darwinports1.0 \
        /Library/Tcl/macports1.0 \
        ~/.macports

Cảm ơn Mark cho lời đề nghị.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.