Làm cách nào để cập nhật ứng dụng App Store từ dòng lệnh?


18

Tôi muốn buộc cập nhật các ứng dụng App Store từ dòng lệnh.

Tôi có thể làm cái này như thế nào?


2
Dường như không có trình trợ giúp dòng lệnh như bản cập nhật phần mềm tổng thể, do đó bạn có thể bị giới hạn trong việc khởi chạy một tập lệnh sẽ tự động hóa các lệnh GUI. Bạn sẽ chỉnh sửa câu hỏi để làm rõ nếu bạn mong đợi giải pháp "hoạt động" chỉ là một thiết bị đầu cuối hoặc nếu một tập lệnh Automator sẽ nhập mật khẩu của bạn khi được hỏi là những gì bạn đang tìm kiếm.
bmike

Tôi đang tìm kiếm một cái gì đó không được giám sát, nhưng nếu điều này yêu cầu id / mật khẩu AppleID tôi thấy ok để đưa nó vào tập lệnh.
sorin

1
Đồng thời xem apple.stackexchange.com/questions/42353/ cho một giải pháp gọi ứng dụng của bên thứ ba
bmike

Câu trả lời:


6

Apple không cung cấp trình trợ giúp dòng lệnh hoặc bất kỳ lớp ca cao có thể viết mã nào mà bạn có thể sử dụng để tự động hóa. Không giống như bản cập nhật phần mềm tổng thể, cho phép cập nhật và cài đặt ngoài hộp, bạn có thể tạo kịch bản cho quá trình nhấp vào nút bằng chuột bằng Automator.

Tuy nhiên, cửa hàng ứng dụng đã được thiết kế ngược và phát hành mã nguồn mở cũng như một dạng nhị phân :

Quá trình cài đặt nhanh chóng và dường như khá đáng tin cậy trên phiên bản OS X 10.11 hiện tại:

brew install argon/mas/mas 

Với nguồn được phát hành, tôi sẽ mong đợi một số triển khai khác của công cụ này sẽ bật lên, thậm chí có thể có một đoạn được viết bằng python.

Nếu ai đó đã đăng nhập vào mac (windowmanager đang chạy), bạn có thể sử dụng Automator và chức năng "xem tôi làm" để tự động cập nhật và lưu trữ mật khẩu lưu trữ của bạn trong tập lệnh khá không an toàn.

Dưới đây là hai hướng dẫn để giúp bạn bắt đầu nếu điều này đáp ứng nhu cầu của bạn.

http://www.tuaw.com/2009/01/19/mac-automation-creating-watch-me-do-workflows/

http://automator.us/leopard/features/virtual-user.html

Khi bạn có một kịch bản hoạt động, bạn có thể sử dụng lệnh dòng openlệnh để khởi động nó.

Nếu ứng dụng App Store từng hiển thị chức năng đó thành kịch bản, bạn sẽ có nhiều tùy chọn hơn từ dòng lệnh. Nó sẽ là dễ sử dụng sdef, sdpgen_bridge_metadatađể đổ toàn bộ từ điển kịch bản và kịch bản thứ sử dụng ruby từ dòng lệnh, nhưng hiện tại lựa chọn tốt nhất là nên sử dụng các mascông cụ dòng lệnh.


1
Wow, điều này thực sự gây phiền nhiễu. Các bản cập nhật phần mềm thông thường có thể dễ dàng sử dụng scriptup bằng phần mềm (8).
Arne

2
Tôi chỉ muốn tuyên bố về hồ sơ - Rõ ràng Apple đã quyết định làm cho nó cứng / không cung cấp bất kỳ công cụ hay hook hay hỗ trợ nào để tự động cài đặt và cập nhật App Store. Hệ thống cốt lõi vẫn có softwareupdatequy trình và thậm chí nó còn nối vào App Store trên Mountain Lion - nhưng nó chỉ dành cho các ứng dụng không phải trên App Store.
bmike

4

App Store đơn giản là không phù hợp với quản trị. Chỉ là một trình quản lý gói gần như không hữu ích hoặc đáng tin cậy như các trình quản lý gói thực sự như pkgsrc, cổng FreeBSD, aptitude, RPM, macports hoặc thậm chí là phần mềm. Theo kinh nghiệm của tôi, không thể đoán trước được và một bộ râu cho các nhà phát triển thương mại để chế ngự sản phẩm của họ. Vì vậy, thực sự chỉ có một cách hợp lý và có trách nhiệm, với tư cách là quản trị viên có thẩm quyền, để làm việc với App Store:

 sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.store_helper.plist

 sudo launchctl unload -w /System/Library/LaunchAgents/com.apple.storeagent.plist

 sudo mkdir /System/Library/LaunchAgents\ \(disabled\)/

 sudo mv /System/Library/LaunchAgents/com.apple.store* /System/Library/LaunchAgents\ \(disabled\)/

Và chỉ cần đặt nó ra khỏi tâm trí của bạn, nó sẽ không gây rắc rối cho bạn nữa. ;-)


Thay vào đó, hãy sử dụng ARD, mặc dù không phải là trình quản lý gói, nó quản lý các gói, cài đặt, cập nhật và nâng cấp, nó sẽ làm những gì bạn muốn, tiết kiệm thời gian và không làm bạn thất vọng:

Đối với Apple Remote Desktop 3, cho 10.9:

Kiểm tra hướng dẫn quản trị viên trước để thuyết phục bản thân rằng đây là cách để đi:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

    open ARD3_AdminGuide.pdf

Sau đó cài đặt:

curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/031-2845.20140313.rerft/RemoteDesktopAdmin372.dmg

hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin372.dmg

sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg -target /

nhưng điều đó có thể gây ra một lỗi vui nếu không chạy 10.9 hoặc nếu không có phiên bản ARD nào trước đó được cài đặt và nếu có, hãy thử:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg ARDexpanded/

hoặc để có hiệu lực như nhau (hoặc / hoặc ở đây, không cần sử dụng cả pkgutil và xar ... Tôi chỉ cần kỹ lưỡng):

mkdir ARDexpanded

cd ARDexpanded

xar -xf /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/RemoteDesktopAdmin372.pkg

Và chúng ta không còn cần hình ảnh đĩa đính kèm, vì vậy hãy đẩy nó ra:

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.7.2\ Admin\ Update/

Và bây giờ bạn sẽ thấy gì nếu bạn

cd ARDexpanded/RemoteDesktopAdmin372.pkg/

ls

    Bom         PackageInfo Payload     Scripts

Những gì trong tệp Payload, một kho lưu trữ cpio được nén bằng gzip, là những gì bạn đang theo đuổi. Vì vậy, với một vài lệnh được xử lý, chúng ta có thể truy cập gói ứng dụng:

cat Payload | gzip -d - | cpio -id

ls

trả về:

    Applications Bom          Library      PackageInfo  Payload      Scripts

Và bạn sắp hoàn thành.

cp -R Applications/Remote\ Desktop.app /Applications/

Bây giờ bạn đã cài đặt Apple Remote Desktop Admin 3.7.2

Vì vậy, tất cả những gì còn lại phải làm là mua giấy phép của bạn:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Khởi chạy / Ứng dụng / Remote \ Desktop.app và tuần tự hóa. Và nhận được một số công việc được thực hiện.


Đối với Báo tuyết 10.6, bạn sẽ cần phiên bản ARD sớm hơn một chút:

curl -Ok http://images.apple.com/ca/fr/remotedesktop/pdf/ARD3_AdminGuide.pdf

curl -Ok http://supportdownload.apple.com/download.info.apple.com/Apple_Support_Area/Apple_Software_Updates/Mac_OS_X/downloads/041-6789.20120917.xD6TR/RemoteDesktopAdmin353.dmg

hdiutil attach -quiet -noverify -nobrowse -noautoopen RemoteDesktopAdmin353.dmg

sudo installer -pkg /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg -target /

và nếu nó ném lại cho bạn điều này:

    installer: Cannot install on volume / because it is disabled.
    installer: This update could not find Remote Desktop on this volume.

vậy hãy thử đi:

pkgutil --expand /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update/RemoteDesktopAdmin353.pkg ARD353

hdiutil detach -quiet /Volumes/Apple\ Remote\ Desktop\ 3.5.3\ Admin\ Update

đi sâu vào Tải trọng:

    cd ARD353/RemoteDesktopAdmin353.pkg/

    ls

trả về:

    Bom         PackageInfo Payload     Scripts

Vì vậy, chạy:

cat Payload | gzip -d - | cpio -id

ls

trả về:

Applications Bom          Library      PackageInfo  Payload      Scripts

Và bạn sắp hoàn thành:

cp -R Applications/Remote\ Desktop.app /Applications/

mua giấy phép của bạn:

open http://store.apple.com/us_smb_78313/product/D6020Z/A/apple-remote-desktop-3-volume-licenses-20-seats-price-is-per-seat

Khởi chạy / Ứng dụng / Remote \ Desktop.app và tuần tự hóa. Và hoàn thành một cái gì đó.


1
Câu trả lời tuyệt vời, tôi đã học được một loạt những điều mới mà tôi có thể làm trong Terminal. +1
shrx

1

Bạn có thể sử dụng softwareupdatecông cụ.

sudo softwareupdate -l

Liệt kê tất cả các cập nhật có sẵn.

sudo softwareupdate -ia

Cài đặt tất cả các bản cập nhật có sẵn.


Điều này không hoạt động cho các ứng dụng Appstore, chỉ dành cho các gói apple.
Brice

cũng thử: man softwareupdate
Billy McCloskey
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.