Cách khắc phục lỗi “make: command not found” trong Ubuntu

Tác giả sysadmin, T.Năm 06, 2023, 01:30:26 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Cách khắc phục lỗi "make: command not found" trong Ubuntu


Để sửa lỗi "make: command not found" trên Ubuntu Linux, bạn sẽ cần cài đặt make. Để cài đặt make, hãy chạy lệnh "sudo apt install make" hoặc để cài đặt đồng thời các công cụ phát triển tiêu chuẩn, hãy sử dụng lệnh "sudo apt install build-essential".


Các bản cài đặt Ubuntu tiêu chuẩn không bao gồm maketiện ích Linux. Nó được sử dụng chủ yếu bởi các nhà phát triển phần mềm, nhưng ngay cả những người không phải là lập trình viên cũng có thể cần đến nó trong một số trường hợp. Đây là cách cài đặt maketrên Ubuntu Linux.

1. Điều gì làm cho: make: command not found có nghĩa là gì?

Nếu bạn thấy lỗi "make: command not found" trên Ubuntu (hoặc một bản phân phối Linux khác), điều đó có nghĩa là lệnh này makehiện chưa được cài đặt trên hệ thống của bạn. Đó là điều bình thường—Ubuntu không cài đặt makelệnh theo mặc định.

Tiện make ích thường được sử dụng khi biên dịch phần mềm từ mã nguồn trên Linux. Cho dù bạn đang cố tự mình chạy make lệnh trực tiếp hay đang sử dụng một phần mềm đang gọi make ở chế độ nền, bạn sẽ thấy lỗi "make: command not found" cho biết nó chưa được cài đặt.

Để khắc phục lỗi "make: command not found", bạn chỉ cần cài đặt make. Bạn có thể làm điều đó với apttrình quản lý gói tiêu chuẩn của Ubuntu.

2. Cách khắc phục lỗi "make: command not found" trên Ubuntu

Để sửa lỗi "make: command not found" trên Ubuntu, bạn cần cài đặt maketiện ích này.

Để chỉ cài đặt maketiện ích, hãy chạy lệnh sau trong Terminal:

Mã nguồn [Chọn]
sudo apt install make

Chúng tôi khuyên bạn nên cài đặt gói xây dựng cần thiết, gói này cũng bao gồm makecác gói quan trọng khác để xây dựng phần mềm. Chạy lệnh sau trong một thiết bị đầu cuối để cài đặt nó:

Mã nguồn [Chọn]
sudo apt install build-essential

Sau khi cài đặt make, bạn sẽ không còn thấy lỗi "make: command not found" nữa. Bạn có thể chạy makelệnh trực tiếp từ dòng lệnh hoặc khởi chạy tập lệnh cài đặt phụ thuộc vào makemột lần nữa để tiếp tục.

3. Tiện ích tạo là gì?

Công cụ này make là một tiện ích dòng lệnh hỗ trợ xây dựng các dự án phần mềm. Tuy nhiên, để đánh giá cao tính hữu dụng của nó, bạn phải hiểu phần mềm thường được phát triển như thế nào. Khi các lập trình viên viết mã, họ nhập các hướng dẫn chương trình của họ vào một trình soạn thảo hoặc một môi trường phát triển tích hợp. Phải có điều gì đó xảy ra để chuyển đổi tệp văn bản thành tệp nhị phân có thể thực thi được. Bước đó được gọi là biên dịch và nó yêu cầu một chương trình gọi là  trình biên dịch.

Trình biên dịch đọc các tệp mã nguồn và dịch chúng thành các lệnh cấp thấp mà CPU có thể hiểu được. Nó tạo ra một tệp nhị phân chứa tất cả các hướng dẫn đó. Đó là tệp nhị phân được gọi và thực thi khi bạn cố chạy chương trình của mình.

Trình biên dịch là những phần mềm phức tạp. Họ có rất nhiều tùy chọn dòng lệnh có thể được gọi cho mỗi tệp mà họ cần biên dịch. Và một dự án phát triển phức tạp có thể có hàng trăm tệp mã nguồn khác nhau. Đó là rất nhiều cài đặt phải theo dõi. Một điều phức tạp khác là bạn không muốn biên dịch các tệp không thay đổi kể từ lần biên dịch cuối cùng. Đó là một sự lãng phí thời gian.

Makefile   là một tệp văn bản đơn giản chứa tất cả các cài đặt và quy tắc cần thiết để dự án phát triển được tích hợp thành tệp nhị phân thực thi. Nó cũng tránh việc biên dịch lại các tệp không thay đổi kể từ lần biên dịch trước. Chương trình đọc tệp thực hiện và điều phối việc xây dựng dự án là make.

Việc biên dịch lại có kiểm soát và xây dựng dự án có thể được thực hiện bằng cách ban hành một lệnh: make. Một số môi trường phát triển tích hợp sử dụng các tệp thực hiện được tạo tự động và thực hiện giai đoạn biên dịch bằng cách gọi maketrong nền.

4. Tôi không phải là một lập trình viên, tại sao tôi phải quan tâm?

Cơ sở người dùng chính của nó có thể là các lập trình viên, nhưng vẫn có thể có những lý do khiến bạn cần makecài đặt trên máy tính của mình, ngay cả khi bạn không bao giờ viết một dòng mã nào.

Một số gói phần mềm không được bao bọc trong các tệp cài đặt. Để có phiên bản hoạt động của chương trình, bạn phải tải xuống tệp lưu trữ chứa tất cả mã nguồn hoặc bạn cần sao chép kho lưu trữ Git của chương trình để lấy mã nguồn, sau đó chạy make.

Nếu bạn sử dụng VirtualBox để chạy các bản phân phối Linux khác dưới dạng máy ảo, bạn sẽ biết rằng để có trải nghiệm tốt nhất, bạn cần cài đặt VirtualBox Guest Additions bên trong hệ điều hành khách. Để thực hiện việc này, các mô-đun hạt nhân VirtualBox Guest Additions phải được xây dựng và để thực hiện điều đó, makephải có mặt trên hệ điều hành khách.

5. Cách cài đặt make sử dụng apt

Nếu bạn đang làm việc với một bản cài đặt mới của Ubuntu, nó sẽ không có maketrên đó. Nếu bạn đang quản lý máy tính cho người khác, bạn nên kiểm tra xem máy tính makeđã được cài đặt chưa.

Nhập lệnh make và nhấn "Enter".

Mã nguồn [Chọn]
make

Nếu bạn thấy một thông báo make phàn nàn rằng bạn đã không cung cấp cho nó một lệnh cụ thể và nó không thể tìm thấy tệp tạo tệp, thì makenó đã được cài đặt và hoạt động. Bạn có thể sử dụng whereislệnh để xem vị trí của tệp makenhị phân và mantrang.

Mã nguồn [Chọn]
whereis make

Nếu bạn thấy một thông báo từ Bash nói rằng nó không thể tìm thấy makelệnh, thì makenó chưa được cài đặt.


Nếu bạn chưa áp dụng bất kỳ bản cập nhật nào trong một thời gian, trước tiên, bạn nên chạy lệnh aptvới updatetùy chọn này.

Mã nguồn [Chọn]
sudo apt update

Chúng ta có thể cài đặt make dễ dàng bằng lệnh này.

Mã nguồn [Chọn]
sudo apt install make

Tuy nhiên, nếu không có bộ công cụ phát triển mặc định makethì không được sử dụng nhiều. Vì vậy, bạn cũng có thể cài đặt chúng. Thật tiện lợi, những thứ này được gói gọn trong một gói duy nhất có tên là "build-essential". Cài đặt gói đó sẽ cài đặt các công cụ như gccvà g++và nó cũng cài đặt make.

Tôi thường bỏ qua bước maketự cài đặt và chuyển thẳng sang cài đặt gói "build-essential". Nó giết chết hai con chim bằng một hòn đá.

Cài đặt gói "build-essential" bằng lệnh này.

Mã nguồn [Chọn]
sudo apt install build-essential

Có rất nhiều công cụ trong "build-essential" và phải mất vài phút để cài đặt tất cả. Mặc dù vậy, đáng để chờ đợi một chút, vì họ sẽ hỗ trợ bạn rất tốt. Bây giờ bạn phải có khả năng đối phó với tất cả các loại phần mềm được xây dựng.

6. Điều gì xảy ra nếu Bash vẫn không thể tìm thấy?

Rất hiếm khi makeđược cài đặt nhưng Bash vẫn không thể tìm thấy nó. Để giải quyết vấn đề này, trước tiên chúng ta cũng có thể thử tùy chọn dễ dàng. Bạn có thể buộc cài đặt lại bằng makecách sử dụng lệnh này.

Mã nguồn [Chọn]
sudo apt install --reinstall make

Nếu điều đó không hiệu quả, bạn có thể sử dụng findlệnh để thử xác định vị maketrí nhị phân. Sau đó, chúng tôi có thể chắc chắn rằng nó nằm trong một thư mục nằm trong $PATHbiến môi trường.

Lệnh này sẽ tìm kiếm hệ thống tệp của bạn từ thư mục gốc, tìm tệp có tên là "make". Nó chuyển đầu ra thành less.

Mã nguồn [Chọn]
find / -type f -name "make" | less

Khi quá trình tìm kiếm hoàn tất, hãy tìm kiếm từ "make" lessbằng cách nhấn dấu gạch chéo lên phía trước " /", nhập "make" và nhấn "Enter". Bạn sẽ thấy tất cả các dòng có chứa từ "make".


Như bạn có thể thấy, find lệnh đã tìm thấy ba tệp mà Bash sử dụng như một phần của quá trình hoàn thành dòng lệnh "Tab" và tệp thực thi nhị phân. Nhưng đã xảy ra lỗi với cài đặt này và tệp makenhị phân đã được đặt trong thư mục "/etc/".

Chúng tôi sẽ di chuyển nó đến nơi cần đến và makesẽ bắt đầu hoạt động.

Mã nguồn [Chọn]
sudo mv /etc/make /usr/bin

Bây giờ nếu chúng tôi cố gắng sử dụng makelệnh, bất kỳ thông báo nào chúng tôi nhận được sẽ đến từ make, chứ không phải từ Bash.

Mã nguồn [Chọn]
make

Tuyệt vời, chúng tôi đã làm việc trên máy tính này. Bạn sẽ không còn thấy lỗi "make: command not found" nữa.

7. Nếu bạn có thể làm cho nó ở đây

Bạn có thể làm cho nó bất cứ nơi nào.

Những kỹ thuật này cũng sẽ hoạt động trên các bản phân phối khác. Bạn chỉ cần thay thế các lệnh cài đặt bằng các lệnh được sử dụng trong bản phân phối của riêng bạn.

Trên Fedora, bạn có thể sử dụng lệnh này để cài đặt các công cụ xây dựng, cùng với các tệp make.

Mã nguồn [Chọn]
sudo dnf groupinstall "Development Tools" "Development Libraries"
Trên Manjaro, sử dụng lệnh này.

Mã nguồn [Chọn]
sudo pacman -S base-devel