Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Make-Make安装和Linux更新_Linux_Makefile - Fatal编程技术网

Make-Make安装和Linux更新

Make-Make安装和Linux更新,linux,makefile,Linux,Makefile,我正在尝试我的Linux新手 以下命令非常有用: sudo-apt-get-install 它将应用程序添加到linux程序列表中,并在运行更新管理器时自动升级 但是我也想从.tar.gz档案中获得更多关于安装程序的知识 因此,我: 提取档案 /配置 make makeinstall 在这个过程中,我有两个问题: 1) 我在论坛上读到,如果我们正在更新二进制文件,“makeinstall”是不好的。 那么我应该只做“制作”和“安装”吗? 2) 第二个问题是,有没有办法将以这种方式安装的程序添加到

我正在尝试我的Linux新手

以下命令非常有用:
sudo-apt-get-install

它将应用程序添加到linux程序列表中,并在运行更新管理器时自动升级

但是我也想从.tar.gz档案中获得更多关于安装程序的知识

因此,我: 提取档案
/配置
make
makeinstall

在这个过程中,我有两个问题: 1) 我在论坛上读到,如果我们正在更新二进制文件,“makeinstall”是不好的。 那么我应该只做“制作”和“安装”吗?
2) 第二个问题是,有没有办法将以这种方式安装的程序添加到Linux软件更新列表中,这样我就不必为发布的每个新版本使用终端了

从tarballs安装程序:

当.tar.gz中的包位于存储库中时,您确实不想安装这些包。与使用
apt-get
相比,手动更新或删除它要困难得多

如果您真的必须自己编译程序,请使用而不是
makeinstall
。这将创建一个软件包,您可以通过软件包管理安装它,然后使用
apt-get
删除它。这更干净

此外,您可能还需要键入

./configure && make && sudo checkinstall
而不是你写的命令。这样,仅当配置成功时才编译程序。仅当编译成功时才生成包。带有
而不是
&&
将尝试所有进程,无论其先决条件是否匹配

图形包管理器


您可以从GUI程序安装软件包。例如,Kubuntu使用
muon
,但不同发行版的程序有所不同。

make install
如果您希望能够轻松删除与软件包相关的文件,则“不好”,因为它没有工作日志,而且通常也没有简单的方法来反转该过程。不过,这与更新软件几乎毫无关系(尽管更新肯定会遇到相关问题)

不,您不能将手动编译和安装的软件添加到打包软件的分发列表中(除了通过诸如checkinstall或自己创建包之类的方式),因为这正是您首先要避免的


总之,如果该软件包是为您的发行版而存在的,并且您希望自己从源代码构建该软件包,那么您通常可以从发行版源代码构建该软件包的正式版本。

checkinstall在其历史上的不同时期都创建了非常糟糕的软件包。这只是一条信息。@EtanReisner很高兴知道,我很久没有使用它了,因为大多数东西都在存储库中可用。如果我需要一个更新的版本,我通常会在系统级保留旧版本,而只在我的主目录下运行新版本。这可能有点胡扯。我不认为它在相当长的一段时间内出现了严重的问题(尽管我确实认为它仍然偶尔出现一些小问题)。