Làm cách nào tôi có thể thiết lập Cygwin để tự động cập nhật và tải xuống mà không cần GUI?


17

Làm cách nào tôi có thể thiết lập Cygwin để tự động cập nhật?

Làm cách nào tôi có thể khiến Cygwin tải xuống một gói mà không phải thông qua điều GUI?

cygwin 

1
Cygwin chạy trên Windows; cái này có lẽ thuộc về SU
Michael Mrozek

3
Urgh. Cygwin là một phiên bản của Unix.

2
Tôi biết một số người sẽ khóc khi nghe "Cygwin là phiên bản của Unix", nhưng tôi đoán chúng ta sẽ đi cùng với nó
Michael Mrozek

Câu trả lời:


13

Cygwin: Unix :: Peaches: Trombone (đó là trên GRE của tôi;)

Cho rằng Cygwin có thể thay đổi kịch tính như thế nào , tôi thực sự cảnh giác khi thực hiện nó mà không có sự đồng ý rõ ràng của tôi. Nếu bạn táo bạo, bạn có thể gọi cron để chạy bất kỳ tập lệnh cập nhật nào bạn có thể chọn.

Nếu bạn đang tìm kiếm tài liệu xấu setup.exe --quiet-modecho hoạt động không giám sát, thì có nó.


7

Tự động cài đặt Cygwin

Nguồn: Trang Wiki này

Chương trình Thiết lập Cygwin được thiết kế để tương tác, nhưng có một vài cách khác nhau để tự động hóa nó. Nếu bạn đang triển khai cho nhiều hệ thống, cách tốt nhất là chạy qua cài đặt đầy đủ một lần, lưu toàn bộ cây gói đã tải xuống. Sau đó, trên các hệ thống đích, hãy chạy setup.exe dưới dạng "Cài đặt cục bộ" chỉ vào cây gói đã tải xuống của bạn. Bạn có thể thực hiện việc này không tương tác với các tùy chọn dòng lệnh setup.exe -q -L -l x:\cygwin-local\, trong đó cây gói đã tải xuống của bạn x:\cygwin-local\(xem Câu hỏi thường gặp tiếp theo để được giải thích về các tùy chọn đó.)

Đối với các tùy chọn khác, tìm kiếm danh sách gửi thư với các thuật ngữ như cài đặt tự động cygwin hoặc cài đặt cygwin tự động .

Tôi đã tìm thấy một số vị trí quan trọng nơi điều này được thảo luận:

  1. Danh sách gửi thư của Cygwin: Sao chép cài đặt cài đặt cygwin từ PC này sang PC khác
  2. Lưu trữ thư Cygwin: câu hỏi về sao lưu
  3. Danh sách gửi thư của Cygwin: Cài đặt Cygwin tự động
  4. Danh sách gửi thư của Cygwin: Có thể sao chép toàn bộ thư mục cygwin sang máy khác không?
  5. blog của helix: Cài đặt các gói cygwin từ cmdline

Bạn có thể muốn xem xét sử dụng cygchecklà tốt.

Ngoài ra: Tôi đã không tự mình kiểm tra điều này, nhưng hiện tại có một dự án được gọi là apt-cygcó vẻ như nó hoạt động theo cách tương tự như apt-get của debian. Đây là trang dự án

Sao chép các gói Cygwin sang một hệ thống mới

Đây là một cách dễ dàng mà tôi đã tìm thấy để sao chép cài đặt cho nhiều hệ thống với các gói được cập nhật khi cài đặt:

#Save some copies of the /etc/setup/installed.db file
cp /etc/setup/installed.db ~/installed.db.bak
cp /etc/setup/installed.db ~/installed.db
#Create a sed script to zero version numbers
cat > ~/zero-version-nums.sed<<-'EOM'
s/-[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0.0.0-0.tar/ 
s/-[0-9]\+\.[0-9]\+-[0-9]\.[0-9a-zA-Z]\+\.tar/-0.0-0.0.tar/ 
s/-[0-9]\+\.[0-9]\+\.[0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0.0-0.tar/ 
s/-[0-9]\+\.[_+0-9a-zA-Z]\+-[0-9]\+\.tar/-0.0-0.tar/ 
s/-[0-9a-zA-Z]\+-[0-9]\+\.tar/-0-0.tar/ 
s/-[0-9]\+\.tar/-0.tar/ 
EOM
# Change all version numbers to 0 (run sed script)
sed -i -f ~/zero-version-nums.sed ~/installed.db

Bây giờ chỉ cần sao chép tệp này vào máy mới C:\cygwin\etc\setup\installed.dbvà chạy trình cài đặt Setup.exe. Các gói được liệt kê nên được tự động chọn để cập nhật. Có thể tự động hóa quá trình này bằng các mẹo tôi đã đề cập ở trên và ở đây .

Nguồn:

  1. Danh sách gửi thư của Cygwin
  2. Đoạn mã trên Snipplr: Kịch bản sed
  3. Blog Post: Cài đặt gói Cygwin từ cmdline
  4. Lưu trữ thư Cygwin: câu hỏi về sao lưu

3

Đây là câu trả lời từ superuser về việc thực hiện cập nhật không giám sát:

cd C:\cygwin
wget -N http://cygwin.com/setup.exe
setup.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode

Bạn nên khởi động lại sau khi hoàn thành nâng cấp để ngăn các ứng dụng cygwin hoạt động sai do nâng cấp cygwin1.dll

--no-desktop Vô hiệu hóa việc tạo lối tắt trên màn hình

--no-shortcuts Vô hiệu hóa việc tạo máy tính để bàn và menu bắt đầu

--no-startmenu Vô hiệu hóa việc tạo phím tắt menu bắt đầu

--quiet-mode Chế độ thiết lập không giám sát

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.