2011-10-17 21 views
21

Tôi đang viết một tập lệnh để cài đặt không cần giám sát của gói trong Repo của chúng tôi, nó là một gói phần mềm với một trong những người được đánh dấu config. Có tùy chọn nào để tôi có thể chuyển sang apt-get/aptitude để nó chấp nhận các tệp Config mới hay không.Làm thế nào để làm cho apt-get chấp nhận Các tệp cấu hình mới trong cài đặt không giám sát của debian từ Repo

Về cơ bản tôi cần một tương đương apt/aptitude của dpkg --force-confnew

Tôi cần phải trả lời những câu dưới đây đặt ra trong khi apt-get cài đặt với một


Tập tin cấu hình Y `/ opt/application/conf/XXX.conf '

==> Tệp trên hệ thống do bạn tạo hoặc bởi tập lệnh.

==> Tệp cũng nằm trong gói do nhà duy trì gói cung cấp.

Bạn muốn làm gì với ứng dụng này? Các tùy chọn của bạn là:

Y or I : install the package maintainer's version 

N or O : keep your currently-installed version 

    D  : show the differences between the versions 

    Z  : background this process to examine the 

Hành động mặc định là giữ phiên bản hiện tại của bạn.


Thông tin bổ sung:

Ngoài ra, tôi đang đi qua các mật khẩu sudo trong một ống để thực hiện lệnh

echo "mysudopass" | sudo apt-get -S mypackage

này đang gắn cờ một Lỗi khi cài đặt khi cài đặt ở giai đoạn Tương tác cấu hình.

tôi trên Ubuntu 10.04 phiên bản apt: apt 0.7.25.3

Tại sao tôi cannotuse dpkg: Những debians phải được cài đặt từ Repo và tôi không có debians cục bộ trên máy của tôi

Cảm ơn Guys for Help của bạn trước !!!!

+0

http://serverfault.com/questions/48724/100-non-interactive-debian-dist-upgrade –

Trả lời

10

Tôi đã thử các đề xuất trong các câu trả lời khác và phát hiện ra rằng nó không đủ khi cố cài đặt gói localepurge.

Sau khi sử dụng debconf-set-selections để thiết lập những gì tôi cần, tôi đã phải sử dụng như sau:

DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-confnew" install localepurge 

Chỉ với biến môi trường DEBIAN_FRONTEND thiết lập để noninteractive tôi có thể buộc localepurge làm những gì tôi đã yêu cầu . Điều này có thể đúng với các gói khác.

Tất nhiên với tập lệnh, bạn có thể xuất biến nếu muốn, nhưng lưu ý rằng nó có thể gây rối với các gói khác. Ví dụ:

#!/bin/sh 
export DEBIAN_FRONTEND=noninteractive 
apt-get -o Dpkg::Options::="--force-confnew" install -y localepurge foo bar 

Trường hợp -y yêu cầu apt-get ngừng đặt câu hỏi (xem man page).

+0

Cảm ơn bạn sir! – Charaf

27

Tôi nghĩ rằng apt-get dòng lệnh bạn đang muốn tìm

apt-get -o Dpkg::Options::="--force-confnew" install your-package 

Đối với vấn đề -S sudo của bạn, có thể thử thêm một số không gian xung quanh '|' tính cách. Không, câu hỏi How to pass the password to su/sudo/ssh without overriding the TTY? có thể hữu ích.

+1

tạo ảnh vui nhộn . nó hoạt động Cảm ơn rất nhiều !!!! – RamNat

+2

Tôi cũng phải thêm vào. apt-get -o Dpkg :: Tùy chọn :: = "- buộc-confnew" cài đặt -y của bạn-gói – danielnegri

2

Bạn cũng có thể đã apt cấu hình để làm điều đó bằng cách tạo /etc/apt/apt.conf.d/local và nói thêm:

Dpkg::Options { 
    "--force-confdef"; 
    "--force-confold"; 
} 
Các vấn đề liên quan