Có thể chạy debootstrap trong môi trường fakeroot không?


9

Tôi có một kịch bản chuẩn bị một hình ảnh cài đặt bằng cách chạy debootstrap, thực hiện một số sửa đổi trên các tệp và sau đó sao chép các tệp vào một hình ảnh đĩa được sao lưu bởi một tệp.

Điều này hoạt động theo root, nhưng tôi muốn có thể chạy tập lệnh mà không có rootđặc quyền, vì nó thực sự không cần bất kỳ tài nguyên đặc quyền nào. Tôi nghĩ rằng tôi chỉ chạy toàn bộ tập lệnh bằng cách sử dụng fakeroot, nhưng debootstrapkhông thành công với

W: Failure trying to run: chroot /tmp/tmp..... mount -t proc proc /proc

Có cách nào xung quanh đó không?

Câu trả lời:


5

Nói chung, vâng , có thể chạy debootstrapnhư một người dùng không phải root bằng cách này fakeroot, nhưng có nhiều chi tiết hơn thế.

Vấn đề trước mắt mà bạn dường như đang gặp phải là cố gắng sử dụng chrootnhư một người dùng không root; bạn cần phải sử dụng fakechrootthay thế, ngoài fakeroot. Ví dụ:

fakechroot fakeroot debootstrap sid /tmp/sid

Các vấn đề sau này bạn có thể chạy vào để bao gồm tạo mount loopback hoặc tạo bảng phân vùng ảnh đĩa dưới dạng người dùng không root.

Thay vì xử lý từng chi tiết từng cái một, bạn có thể thấy dễ dàng hơn khi sử dụng biến thể debootstrap như polystrap , cũng xử lý biên dịch chéo (ví dụ: tạo hình ảnh armhf từ x86-64) nếu bạn muốn một ngày nào đó .


2
Vấn đề là debootstrapbản thân nó đang gọi chrootvà tôi không thể tìm ra cách để nói với nó nó cần sử dụng fakechroot.
Petr Pudlák

@ PetrPudlák Bạn đã thử fakerootng thay vì fakeroot? Chúng hoạt động khác nhau, vì vậy đôi khi một cái hoạt động khi cái kia không. Tôi không biết nếu fakerootng làm cho chroot hoạt động.
Gilles 'SO- đừng trở nên xấu xa'

@ PetrPudlák: trang man fakechroot đưa ra một lời mời ví dụ nhưfakechroot fakeroot debootstrap sid /tmp/sid
bnewbold

@ PetrPudlák: --variant = fakechroot nên làm điều đó. Ngoài ra: unshare / lxc-userns-exec là một cách 'tốt hơn' để làm điều này kết hợp với multistrap (tức là ý tưởng đằng sau polystrap, được đưa vào brickstrap).
dùng268394


0

Tôi ngạc nhiên khi không ai đề cập rằng debootstrap có một tùy chọn --variant=fakechrootđể làm chính xác những gì bạn đang cố gắng làm.

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.