Phát hiện nếu hệ điều hành Ubuntu Linux của nó trong Makefile


13

Tôi muốn tạo một tệp tạo tệp sẽ biên dịch các đối tượng của mình và đặt tên cho chúng theo bản phân phối Linux (ví dụ: Suse, RedHat hoặc Ubuntu). Làm cách nào để phát hiện hệ điều hành có phải là Ubuntu hay không?


làm cho nó hoạt động? (vì bạn đã xóa nhận xét của mình: D)
Rinzwind

vâng, tôi đã thay đổi var hệ điều hành thành "shell lsb_release -si" và bây giờ nó hoạt động tốt :). Cảm ơn câu trả lời của bạn!
RRR

+1 cho tiêu đề hài hước. (gợi ý: Makefile và Make file có nghĩa là những thứ hoàn toàn khác nhau.)
Mahesh

Câu trả lời:


19

Chúng tôi sử dụng cat /etc/lsb-releaseđể xác định bản phát hành Ubuntu:

sh-3.2$  cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.4 LTS"

Đối với các phiên bản khác, nó có thể là

ls /etc/*release

Gentoo, RedHat, Arch & SuSE đều có tệp phát hành: http://linuxmafia.com/faq/Admin/release-files.html Đây là một tập lệnh hoàn chỉnh trong liên kết;)


Mã ví dụ cho hệ điều hành, kiến ​​trúc và phiên bản cho các hệ thống loại Ubuntu:

OS=$(shell lsb_release -si)
ARCH=$(shell uname -m | sed 's/x86_//;s/i[3-6]86/32/')
VER=$(shell lsb_release -sr)
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.