今天在安装redis的时候发现官方的文档上没有说要执行make install,直接cd 到src 目录里面执行redis-server
文件就能启动。
而看很多别人的笔记呢,则都写了make install
,发现实际就是把src目录下的几个二进制文件复制到了系统的/usr/local/bin
下面了而已。
查了下似乎是说make install
执行的是Makefile
里面的脚本。
实际的作用也就是上面说的复制二进制文件么?
只是以redis的安装为例,主要是问安装程序时候的make install
make install
(pour la commandemake
) signifie littéralement atteindre l'objectifinstall
. Puisque cet objectif s'appelleinstall
, il s'agit bien sûr d'installer le logiciel.Dans les systèmes de type UNIX, l'installation du logiciel comprend généralement les étapes suivantes en option :
strip
Supprimez les symboles inutiles des fichiers de code binaireCertains logiciels pour systèmes de type UNIX ne nécessitent pas d'installation. Vous pouvez les utiliser directement en exécutant le fichier exécutable. Certains ne sont pas comme ça. Par exemple, les fichiers de configuration et les fichiers de ressources requis par le logiciel ne sont pas copiés aux emplacements correspondants. Le logiciel comprenant la bibliothèque de liens dynamiques doit mettre à jour le cache de la bibliothèque de liens dynamiques. Sinon, une erreur se produira. la bibliothèque de liens dynamiques qui vient d'être compilée est introuvable, etc. attendez.
Extrait du README officiel :
De même,
Extrait de https://github.com/antirez/redis/blob/3.0/Makefile
Mais c'est juste pour exécuter
make install
sous le répertoire src.Après avoir regardé le Makefile dans le dossier src/, j'ai exécuté la commande
install
avec /usr/local/bin comme paramètre de répertoire (par défaut) pour beaucoup de choses (merci de me permettre de ne pas les lister un par un).Remarques : L'ajout d'un paramètre après make exécute généralement une cible dans le Makefile. Par exemple,
make install
consiste à exécuter un ensemble de commandes sousinstall:
dans le Makefile.Alors, quelle est la commande
install
?man install
Après un instant, vous saurez :Obtenez vous-même les informations détaillées.