Làm cách nào tôi có thể mở tệp .pkg bằng tay?


60

Một số ứng dụng có tệp .pkg và yêu cầu bạn nhập mật khẩu quản trị viên, ngay cả khi tất cả những gì họ làm là sao chép tệp nhị phân vào / Ứng dụng.

Tôi muốn có các ứng dụng của mình trong ~ / Ứng dụng và tôi không muốn cấp quyền quản trị cho bất kỳ thứ gì không phải từ quyền làm mẹ.

Có cách nào để tôi có thể tự mở tệp .pkg và rút ứng dụng ra không? Có GóiMaker trong Công cụ dành cho nhà phát triển, nhưng dường như điều đó không làm được (nó đã tạo ra một số đầu ra khiến tôi nghĩ rằng thực sự không có tập lệnh hoặc phần nào khác trong trình cài đặt, chỉ là ứng dụng).


2
Hãy thử unpkg .
lhf

Câu trả lời:


67

Nếu bạn nhấp chuột phải vào nó và nhấp vào Hiển thị Nội dung Gói, bạn sẽ nhận được một vài tệp trong thư mục Nội dung. (Lưu ý: nếu bạn không thấy Hiển thị nội dung gói, bạn sẽ cần mở Terminal.app và chạy pkgutil --expand mystubbornpackage.pkg path/to/expand)

Một là tệp BOM (hóa đơn vật liệu) được chuyển thành biên nhận mà bạn có thể sử dụng để gỡ cài đặt ứng dụng. Tập tin này chứa một bảng kê khai mọi thứ mà gói sẽ cài đặt và ở đâu; để đọc tệp này, sử dụng lệnh lsbom .

Hầu hết các gói (tôi đang sử dụng Office 2008 tại đây) cũng có tệp Archive.pax.gz, gói này chứa mọi thứ mà Trình cài đặt sẽ di chuyển vào các thư mục khác nhau như được hướng dẫn trong tệp BOM. Hầu hết các ứng dụng dường như có .app trong kho lưu trữ này, mặc dù việc kéo nó vào / Ứng dụng có thể khiến nó không có khung mà nó cần để chạy; vì vậy bạn sẽ phải tìm ra những tập tin khác mà nó cần và nơi nó cần để chúng hoạt động.

Ngoài ra, tất cả các gói đều có thể ghi nhật ký tin nhắn, nếu bạn nhấn Cmd-L (hoặc chọn tùy chọn Nhật ký trình cài đặt từ menu Window , bạn có thể xem chúng khi chúng được tạo. Điều này có thể cho bạn biết thêm những gì nó đang cài đặt, tại rất ít đó là một số thông tin nếu bạn không tin tưởng vào gói.


3
Tôi không nhận được "Hiển thị nội dung gói" trong menu chuột phải.
Thilo

3
@Thilo Nếu bạn không nhận được tùy chọn "Hiển thị nội dung gói" thì tệp pkg đã được tạo dưới dạng tệp phẳng. Apple đã giới thiệu pkg theo phong cách phẳng vài năm trước
tên người dùng

@username: Làm thế nào để tôi mở chúng?
Thilo

10
pkgutilsẽ làm điều đó. Bạn có thể mở rộng nó bằng cách sử dụng pkgutil --expand file.pkg path_to_expandvà nó sẽ chuyển đổi nó thành một gói kiểu thư mục.
Hội trường Mathew

@username, "phẳng" thậm chí có nghĩa là gì?
Pacerier

34

Ngoài những gì Matthew Hall nói, bạn cũng có thể nhấn Cmd-I trong ứng dụng Trình cài đặt để xem tập tin nào trình cài đặt sẽ cài đặt và ở đâu.


3
+1. Với điều này, tôi có thể nhanh chóng xác minh rằng chỉ có nhị phân ứng dụng trong đó, không có thứ gì khác trên toàn hệ thống.
Thilo

7

Nếu bạn không tin tưởng trình cài đặt đủ để cấp quyền quản trị để cài đặt, vậy tại sao bạn lại tin tưởng vào ứng dụng / ứng dụng nhị phân?

Pacifist sẽ cho phép bạn xem trong các tập tin gói. Điều này không nhất thiết chỉ cho phép bạn "rút nhị phân".


1
Tôi cũng không tin tưởng nhị phân. Tôi muốn không bao giờ cung cấp cho nó quyền quản trị (dù sao nó cũng không cần).
Thilo

3
Miễn là bạn không chạy ứng dụng từ bất kỳ người dùng nào có đặc quyền quản trị viên, lòng tin của bạn sẽ được duy trì. Đừng quên rằng ngay cả một ứng dụng cấp người dùng cũng có thể thực hiện các yêu cầu từ quy trình cấp quản trị viên, vì vậy, rất nhiều công việc để chạy các ứng dụng mà bạn không thực sự tin tưởng.
bmike

@ghoppe, Đó là vì mặc định đôi khi không được tối ưu hóa cho người dùng nhưng người tạo ứng dụng. Ví dụ, thay vì cài đặt tất cả các rác cài đặt theo mặc định, tôi có thể chọn chỉ lấy các tệp có bản chất. Ví dụ: khi tải xuống Mysql / Java / v.v.
Pacerier

4

Ngoài ra, bạn có thể thử,

sudo installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

HOẶC LÀ

installer -pkg ~/Downloads/packagename.pkg -target ~/Applications/

Điều đó đã không làm việc không may. Nó vẫn khăng khăng "Cài đặt tại đường dẫn cơ sở /" và sau đó hỏi mật khẩu quản trị viên.
Thilo

1
Có thể cài đặt vào hình ảnh đĩa được tạo bằng một cái gì đó giống như hdiutil create -size 200m -fs HFS+ -volname Scratch scratch.dmgvà sau đó sao chép các tệp vào vị trí bạn thích. Bạn vẫn cần sudo để chạy trình cài đặt không may.
mjs

2
  1. Sau khi bạn mở gói thành công, hãy tìm tệp Archive.pax.gz đã được đề cập trước đó.

  2. Tạo một thư mục trống mới trên máy tính để bàn của bạn đặt tên nó bất cứ điều gì bạn muốn. Tôi thường đặt tên cho chúng là "xxxx" hoặc "zzzz", v.v. để làm cho việc gõ dễ dàng hơn sau này.

  3. Tùy chọn kéo một bản sao của tệp Archive.pax.gz vào thư mục mới "xxxx" trên màn hình của bạn.

    Nếu tệp nằm trong phương tiện chỉ đọc, bạn có thể chỉ cần kéo tệp vào thư mục "xxxx" của mình mà không cần phím Tùy chọn để tạo bản sao.

  4. Bây giờ hãy mở Terminal.app và tại dòng lệnh điều hướng đến thư mục "xxxx" mới của bạn và liệt kê nội dung của thư mục để xác nhận rằng tệp Archive.pax.gz của bạn có ở đó:

    cd ~/Desktop/xxxx
    ls -al
    
  5. Bây giờ có hai lệnh đơn giản để nhập:

    gunzip -v Archive.pax.gz
    

    Gzip sẽ cho bạn biết rằng nó đã thay thế "Archive.pax.gz" bằng "Archive.pax") Bây giờ liệt kê lại nội dung của thư mục để xác nhận điều này.

    pax -r -f Archive.pax
    

    (Bạn phải tách riêng -r-f, như -rfsẽ không hoạt động)

  6. Cuối cùng, liệt kê lại nội dung của thư mục với ls -al. Ngoài tệp Archive.pax của bạn, bây giờ bạn sẽ thấy một hệ thống phân cấp thư mục có thể chứa một hoặc nhiều thư mục.

    Các tệp trong hệ thống phân cấp thư mục đó sẽ minh họa cho bạn nơi trình cài đặt OS X sẽ cài đặt các tệp trên hệ thống của bạn như thể thư mục "xxxx" của bạn là thư mục gốc "/".

  7. Sau đó, bạn có thể sao chép thủ công các tệp đó vào đích của chúng nếu muốn.


3
Nói cách khác cd ~/Desktop; cp Package.pkg/Contents/Archive.pax.gz .; gunzip -v Archive.pax.gz; pax -r -f Archive.pax. Bạn không cần phải mô tả tất cả mọi thứ ở đó mức độ chi tiết.
Lri

6
Lri, tôi đã đưa ra số lượng chi tiết đó để người dùng ở bất kỳ trình độ chuyên môn nào cũng có thể theo dõi và thành công. Cấp, phiên bản mật mã của bạn sẽ đạt được kết quả tương tự. Tuy nhiên, những người dùng khác đọc được điều này trong tương lai, những người có thể không quen thuộc với dòng lệnh có thể bị mất một cách vô vọng.
stargood

1

pkgutil --expand đã thất bại với tôi với lỗi sau:

Error encountered while creating .. Error 17: File exists

Nhưng tôi đã quản lý để giải nén các tập tin xarthay vào đó:

xar -xvf foo.pkg


1
cái này hiệu quả với tôi nhưng rõ ràng, nếu bạn cung cấp cho pkgutil một thư mục không tồn tại làm đích khiến cho 17 lỗi sẽ biến mất.
Michael

1

Công cụ tốt nhất để kiểm tra các tập tin gói là Gói đáng ngờ . Nó cũng cho phép bạn sao chép các tập tin ra khỏi gói.

Nó không chỉ cung cấp tất cả thông tin bạn cần trong ứng dụng mà còn cài đặt trình cắm Quick Look để chỉ cần chọn tệp gói và nhấn vào thanh dấu cách sẽ mở ra một cửa sổ chứa thông tin cần thiết nhất.


0

Các Unarchiver thể làm điều này; nó sẽ làm tương tự như pkgutil --expandnhưng sử dụng kéo và thả. Đây là sự thay thế tốt hơn cho dù sao Lưu trữ Utility.app của Apple.


0

UnArchiver đã làm điều đó.

Cài đặt UnArchiver, mở UnArchiver; trong khi nó đang mở - nhấp đúp chuột vào đóMAMP_MAMP_3.5.pkg

Thực hiện theo các bước để cài đặt MAMP.

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.