Là python trên macos monterey?

Nổi bật trên nền tảng macOS Monterey 12. 2, Apple đã phát hành công khai macOS Monterey 12. Ghi chú phát hành 3 Beta

Mặc dù đây là một bản phát hành điểm, nhưng có một vài thay đổi đột phá

Các hạt nhân cho cả Ứng dụng Dropbox Desktop và Microsoft OneDrive được gọi là không dùng nữa trong ghi chú phát hành và do đó, cả hai đều có các bản cập nhật và/hoặc thay đổi sắp tới để khắc phục thay đổi này

Tuy nhiên, thay đổi có tác động lớn hơn là việc loại bỏ Python 2 [/usr/bin/python]

Điều này có một số điểm phân nhánh và thực sự là một thay đổi rất lớn đối với một bản phát hành điểm

Xem bên dưới để biết thêm chi tiết về điều này và nó có thể ảnh hưởng như thế nào đến mọi Quản trị viên Mac

nội dung

  • 1 Tại sao điều này lại xảy ra?
  • 2 Chà, chúng tôi đã được cảnh báo.
  • 3 Vì vậy, chúng ta chỉ có thể chạy Python 3 như Apple khuyến nghị, phải không?
  • 4 Còn #. /usr/bin/env trăn?
  • 5 Và, python -c?
  • 6 Chúng tôi sẽ thấy những lỗi nào?
  • 7 Vậy, bây giờ thì sao?
    • 7. 1 Jamf Pro
    • 7. 2 Munki
    • 7. 3 Pkg tự động
    • 7. 4 Hướng dẫn chung.
  • 8 Còn gì nữa không?
  • 9 Vì vậy, chúng tôi đã tìm thấy một số lệnh gọi Python 2, bây giờ thì sao?
  • 10 Còn Ruby và Perl thì sao?

Tại sao chuyện này đang xảy ra?

Nhị phân /usr/bin/python là Python 2, đó là hoàng hôn 2020-01-01

Vì vậy, từ quan điểm bảo mật, sự thay đổi này có ý nghĩa nhưng việc loại bỏ trong một bản phát hành điểm của macOS sẽ rất khó khăn

Vâng, chúng tôi đã được cảnh báo

Đúng, đã có cảnh báo trước

ghi chú phát hành macOS Catalina đã nêu

https. // nhà phát triển. táo. com/documentation/macos-release-notes/macos-catalina-10_15-release-notes

Tuy nhiên, khi macOS Monterey được phát hành, Python 2 [/usr/bin/python] vẫn được đưa vào

Thay vào đó, một cảnh báo đã được nhắc khi Python 2 [/ usr/bin/python] được gọi, [xem bài đăng trên blog trước của tôi về điều này]

Vì vậy, có, chúng tôi đã được cảnh báo. Điều ngạc nhiên hơn là thay đổi này sẽ xuất hiện trong một bản phát hành điểm, không phải macOS 13 [ví dụ]

Và, sự thay đổi này cũng có thể gây ngạc nhiên cho những người đã loại bỏ những lời nhắc phản đối về Monterey

Vì vậy, chúng ta chỉ có thể chạy Python 3 như Apple khuyến nghị, phải không?

Không. Và vì một vài lý do

Điều đầu tiên, Python 3 không được cài đặt trên macOS theo mặc định

Có một tập tin nằm ở. /usr/bin/python3, nhưng đây là một sơ khai và việc gọi nó sẽ kích hoạt bên dưới [nếu Xcode chưa được cài đặt và các công cụ dành cho nhà phát triển đã được cài đặt]

Tiếp theo, đường dẫn đến Python 3 được cài đặt theo quy trình trên là /usr/bin/python3 và Python 2 được đặt tại. /usr/bin/trăn. Và, /usr/bin/ không thể được sửa đổi bởi chúng tôi, vì nó được bảo vệ bởi Bảo vệ toàn vẹn hệ thống

Và, ngay cả khi chúng ta có thể trỏ /usr/bin/python tới bản cài đặt Python 3

Python 3 bao gồm một số thay đổi có nghĩa là không thể tương thích ngược với Python 2

Những thay đổi này là một phần lý do tại sao Python 2 vẫn được sử dụng, mặc dù Python 3 đã được phát hành vào ngày 3 tháng 12 năm 2008

Thế còn #. /usr/bin/env con trăn?

Khi mọi thứ đang kêu gọi #. /usr/bin/env python, họ đang yêu cầu HĐH duyệt qua các thư mục được hiển thị trong $PATH để tìm tệp có tên “python” và sau đó sử dụng tệp đó

Vì vậy, những điều này sẽ thất bại vì chúng có thể sẽ không tìm thấy tệp hoặc nếu chúng tìm thấy tệp, đó có thể là Python 3

Và, trăn -c?

Điều này giống như gọi #. /usr/bin/env python và như vậy, hãy cẩn thận

Chúng ta sẽ thấy những lỗi nào?

Nó thực sự phụ thuộc vào cách Python 2 được gọi, nhưng trực tiếp bạn có thể sẽ thấy một cái gì đó như

/usr/bin/python: bad interpreter: No such file or directory

Và có thể

/usr/bin/python: command not found
Thế bây giờ thì thế nào?

Chà, tùy thuộc vào hệ thống bạn đang sử dụng. Nhưng để khái quát hóa, bạn sẽ muốn kiểm tra tất cả các tập lệnh và gói của mình để tìm các lần xuất hiện của python -c , /usr/bin/python hoặc /usr/bin/env python

Dưới đây là một số hướng dẫn cụ thể hơn

Jamf chuyên nghiệp

Một lần nữa, tôi khuyên bạn nên chạy Jamf Migrator đối với phiên bản Jamf Pro của bạn để tải xuống mọi tập lệnh và Thuộc tính tiện ích mở rộng để kiểm tra

Munki

Tải xuống danh mục “tất cả” [hoặc từng danh mục riêng biệt] và kiểm tra

AutoPkg

Kiểm tra công thức nấu ăn và phần ghi đè của bạn để biết các lần xuất hiện đối với /usr/bin/python hoặc /usr/bin/env python

Hướng dẫn chung

Armin Briegel, hay còn gọi là scriptingosx, có một tập lệnh tuyệt vời có tên là pkgcheck có thể duyệt qua một thư mục tìm kiếm các gói [có nhiều định dạng khác nhau và thậm chí cả các gói trong DMG] và sẽ tư vấn xem gói cài đặt trước hay cài đặt sau bắt đầu bằng một chuỗi #. /usr/bin/python [trong số nhiều thứ khác]

Vì vậy, pkgcheck rất đáng để chạy với Munki Repo hoặc Điểm phân phối Jamf của bạn [nếu bạn có JCDS, trước tiên bạn cần sao chép cục bộ]

Dưới đây là đầu ra cho Microsoft Teams 1. 00. 434557

MSTeams-1.4.00.34557-434557
/Volumes/distribution/pkgs/Applications/Microsoft/MicrosoftTeams/MSTeams-1.4.00.34557-434557.pkg
Signature:      Developer ID Installer: Microsoft Corporation [UBF8T346G9]
Notarized:      Yes, Notarized Developer ID
Type:           Flat Distribution PKG
Version:        1.00.434557
Contains 1 component pkgs

    
    Type:           Flat Component PKG
    Identifier:     com.microsoft.teams
    Version:        1.00.434557
    Location:       /Applications
    Contains 9 resource files
    contextInstall.py has shebang #!/usr/bin/python
    fileLogger.py has shebang #!/usr/bin/python
    utility.py has shebang #!/usr/bin/python
    logger.py has shebang #!/usr/bin/python
    perfScenario.py has shebang #!/usr/bin/python
    startTeams.py has shebang #!/usr/bin/python
Còn gì nữa không?

Nếu bạn chưa chạy Monterey trong sản xuất, hãy tạo một máy ảo trên Monterey hoặc cập nhật máy Mac và chạy nó thông qua quá trình triển khai của bạn. Cài đặt càng nhiều mục càng tốt và chạy chúng nữa

Ghi lại bất kỳ lời nhắc nào bạn nhận được và nếu bạn đang chạy Monterey, bạn nên xóa phần bên dưới khỏi tài khoản của mình để xem có lời nhắc nào xuất hiện không

~/Library/PythonWrapper/promptedapps.plist

Tiếp theo, cập nhật một vài thiết bị lên 12. 3 thông qua các chương trình beta khác nhau của Apple

Sử dụng điều này như trình điều khiển hàng ngày của bạn, có thể có một số điều bất ngờ mặc dù tất cả các kiểm tra trên

Monterey 12. 3 lần phá mã. ` để mở Mã VS trong một repo và tôi rất buồn… và bây giờ tôi hoàn toàn nhận thức được việc loại bỏ hệ thống Python sẽ trở nên HOANG DÃ. Hỗ trợ CNTT ôm tất cả xung quanh. #Quản trị viên Mac

– Nathaniel Strauss [@nwstrauss_] ngày 28 tháng 1 năm 2022

Có vẻ như mã nhị phân là một tập lệnh bash đơn giản, với nội dung bên dưới

cat /usr/local/bin/code
#!/usr/bin/env bash
#
# Copyright [c] Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.

function realpath[] { python -c "import os,sys; print[os.path.realpath[sys.argv[1]]]" "$0"; }
CONTENTS="$[dirname "$[dirname "$[dirname "$[dirname "$[realpath "$0"]"]"]"]"]"
ELECTRON="$CONTENTS/MacOS/Electron"
CLI="$CONTENTS/Resources/app/out/cli.js"
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --ms-enable-electron-run-as-node "$@"
exit $?
Vì vậy, chúng tôi đã tìm thấy một số cuộc gọi Python 2, bây giờ thì sao?

Điều này thực sự phụ thuộc vào những gì và tổ chức của bạn cần

Ví dụ: Thuộc tính mở rộng cho jamJAR đã được chuyển từ Python 2 sang bash. Điều này đã dừng lời nhắc trên macOS Monterey 12. 0-12. 2 và có nghĩa là đối với macOS Monterey 12. 3 không cần thay đổi

Trong khi đó, đây là bộ xử lý tùy chỉnh cho công thức AutoPkg được viết bằng Python 2. Khi AutoPkg vận chuyển Python 3 của riêng nó, chúng tôi có thể chuyển tập lệnh sang Python 3 và thay đổi shebang để trỏ đến Python vận chuyển của AutoPkg

Khi nói đến các sản phẩm của nhà cung cấp, hãy liên hệ càng sớm càng tốt. Ngay khi bạn thấy rằng họ đang gọi Python 2, hãy chỉ cho họ macOS Monterey 12. 3 ghi chú phát hành

Nếu đó là một dự án nguồn mở, tôi khuyên bạn nên nêu vấn đề càng sớm càng tốt và lý tưởng nhất là PR ngay sau đó

Còn Ruby và Perl thì sao?

Mặc dù các ghi chú phát hành macOS Catalinas nói rằng Ruby và Perl sẽ không được đưa vào macOS tương lai trong cùng một câu với Python, nhưng dường như không có bất kỳ mốc thời gian công khai nào xung quanh việc loại bỏ chúng, nhưng có thể là macOS 12. 4

Python có trên Mac OS Monterey không?

Python 2 và macOS Monterey . 3 Python 2 has now been removed from macOS 12.3 , sau giai đoạn chuyển đổi kéo dài một thập kỷ. Các nhà phát triển quy trình làm việc viết Python hầu hết đã chuyển sang phiên bản 3, vì vậy rất có thể bạn sẽ không nhận thấy sự thay đổi.

Python có được bao gồm trong macOS không?

Python được cài đặt sẵn trên Mac OS X nên dễ dàng bắt đầu sử dụng. Tuy nhiên, để tận dụng các phiên bản Python mới nhất, bạn sẽ cần tải xuống và cài đặt các phiên bản mới hơn cùng với các phiên bản hệ thống.

Python có được cài đặt trên Mac M1 không?

Python được cài đặt bởi . [Kiểm tra từ Trình giám sát hoạt động, Loại quy trình python là Apple ]. python is natively run on M1 Max Chip. [Check from Activity Monitor, Kind of python process is Apple ].

macOS có xóa Python không?

Do đó, vào tháng 6 năm 2019, Apple đã thông báo ngừng hỗ trợ Python 2. 7 và vào tháng 4 năm 2022, họ đã xóa hỗ trợ cho Python 2. 7 trên các thiết bị macOS chạy Monterey 12. 3 trở lên .

Chủ Đề