如何安装.tar.gz(或.tar.bz2)文件?

我已经下载了.tar.gz文件。但是我不知道如何安装它。这种类型的文件该怎么安装?

21正如下面一些答案中提到的,尽量不要通过tarball安装软件包,因为这往往会破坏已管理的软件包,并使您陷入无法解决的状态,让您非常难过。在99.14159265%的情况下,通过软件包管理器进行安装是首选。 - Catskul
1这里有一个在YouTube上的有帮助的视频,它解释了这个问题:https://www.youtube.com/watch?v=njqib0fzE9c - Benny Code
1我试过这个(http://www.hostingadvice.com/how-to/untar-file-linuxubuntu/),它有效。 - Kulasangar
试试这个:https://blog.bluematador.com/posts/postman-how-to-install-on-ubuntu-1604/ - gpaoli
这对于Ubuntu 18来说是一样的,还是有一个用户界面可以完成这个操作吗? - tgkprog
相关链接:https://askubuntu.com/questions/86849/how-to-unzip-a-zip-file-from-the-terminal - William Martens
14个回答

首先,您需要将tar存档文件中的文件提取到一个文件夹中。让我们将文件复制到您的桌面上。您可以通过在文件浏览器中右键单击存档文件的图标,并在上下文菜单中选择适当的条目来提取存档。 提取存档应该会创建一个具有类似名称的新文件夹,例如program-1.2.3。 现在,您需要打开终端并使用以下命令导航到该目录:
cd /home/yourusername/Desktop/program-1.2.3

请确保您阅读了名为 INSTALL INSTALL.txt README 或类似名称的文件,如果存在的话。您可以通过在终端使用 ls 命令来检查是否存在此类文件。该文件可以使用以下命令打开和阅读:
xdg-open INSTALL

INSTALL是您的文件名。 该文件将包含继续安装过程所需遵循的正确步骤。通常,这三个“经典”步骤为:

./configure
make
sudo make install

你可能还需要安装一些依赖项,例如,如果运行configure时出现错误列表,提示你缺少哪些依赖项。
你也可以使用checkinstall代替make install
请记住,结果可能因人而异。

41我强烈推荐使用checkinstall,因为这将使应用程序的卸载变得更加容易。 - Tommy Brunn
2个人而言,我喜欢将源代码放在~/src目录下,以保持我的桌面整洁无杂。 - invert
2当然,假设tarball中包含某种形式的源代码。 - andol
@invert 是的,我的Windows桌面上有各种东西:文件、程序、几个旧的空文件夹,但是当我启动Ubuntu时,我的桌面就变得闪闪发光。我把所有的项目都放在~/sandbox/PackageName/package-x.x-y/里。 - JamesTheAwesomeDude
检查README等文件也是有用的。 - Wilf
这就是为什么我写下了「确保你首先阅读一个名为INSTALL、INSTALL.txt或README的文件」。 - Andrea Lazzarotto
1这些是针对特定情况的说明...我经常遇到的一个更常见的情况不需要编译,重要的是要知道在我的文件系统中应该将它移动到哪里以及如何创建 .desktop 图标文件。 - Selah
1Tarballs几乎每次都用于分发源代码。如果你有任何特殊的tarball示例,可以考虑将其作为答案添加进来,那将是一个特殊情况。 - Andrea Lazzarotto
我实际上在很大程度上同意@Selah的观点,迄今为止,我遇到的几乎每个tarball都是压缩的二进制文件。现在,源代码主要通过软件配置管理(SCM)进行分发。对于二进制tarball,除了详细说明源代码的安装(这本来就是荒谬的事情,因为大多数开发人员都知道该怎么做),如果能提示可能的提取位置,那将非常好。 - XtrmJosh
1你通常下载什么样的非常奇怪的软件包呢?:D - Andrea Lazzarotto
你真的应该更多地推广使用sudo checkinstall而不是sudo make install!通过软件包管理来管理从源代码编译的软件是一个非常好的主意,轻松删除只是其中之一。为了方便解决依赖关系,可以使用auto-apt,请参考这里auto-apt run ./configure可以替代./configure - dessert
@AndreaLazzarotto 这是一个以压缩目录形式提供的程序示例,而不是需要编译的东西。https://protege.stanford.edu/products.php - Selah
这篇帖子对于一个已经打包的程序不需要从源代码编译的情况给出了很好的解释。链接在这里:https://askubuntu.com/questions/6897/where-to-install-programs - Selah
+1 但只是想评论一下,经过8年的时间,应该有人已经写了一个自动化的bash脚本了。这个脚本可以下载、分析、创建目录、解压缩、显示README文件、检查依赖、编译、删除目录并报告错误等等。可以将这个脚本附加到nautilus右键菜单上。如果这样的脚本不存在,我可能找到了我的下一个项目 :) - WinEunuuchs2Unix
1尝试使用sh install.sh,当xdg-open无法启动时。 - Adi Prasetyo

你不能“安装”一个.tar.gz文件或.tar.bz2文件。.tar.gz文件是gzip压缩的tar包,类似于.zip文件的压缩存档。.bz2文件是使用bzip2压缩的。你可以使用以下方法提取.tar.gz文件:
tar xzf file.tar.gz

同样地,你可以使用以下方法提取.tar.bz2文件。
tar xjf file.tar.bz2

如果您想在解压缩过程中查看被提取的文件,请添加v
tar xzvf file.tar.gz

即使您没有互联网连接,您仍然可以使用Ubuntu的软件包管理系统,只需从http://packages.ubuntu.com/下载.deb文件。不要忘记同时下载依赖项。
如果您想更简单地离线安装软件包,请参阅问题如何离线安装软件?

额...没有互联网连接的情况下,如何下载 .deb 文件和依赖项呢...? - AlwaysLearning
4@AlwaysLearning 你如何在没有互联网连接的情况下在这里发表评论呢...?试试链接中的“如何离线安装软件”链接。 - Lekensteyn
1有时候实际上并不需要安装。只需将归档文件复制/移动到正确的文件夹即可:首先,找出当前安装所在的位置,例如通过 which <软件名称> 命令。然后将 tar.gz 归档文件中提取的内容移动到该文件夹以覆盖原有内容。 - AlQuemist

如何从源代码编译程序

  1. 打开控制台
  2. 使用命令cd导航到正确的文件夹。如果有包含安装说明的README文件,请使用该文件。
  3. 使用以下命令之一解压文件

    • 如果是tar.gz文件,请使用tar xvzf PACKAGENAME.tar.gz
    • 如果是tar.bz2文件,请使用tar xvjf PACKAGENAME.tar.bz2
  4. ./configure

  5. make
  6. sudo make install(或使用checkinstall

从软件源或软件中心下载软件包。

如果通过软件源安装软件包而不是自行下载软件包,则可以通过更新管理器获取该软件包的新更新并进行安装。

您可以在终端中输入以下命令来安装MYPACKAGE

sudo apt-get install MYPACKAGE

或者通过使用软件中心并搜索来安装。但如果找不到,请使用源代码安装。

7更通用的指示是“下载文件,解压缩并查找安装说明,可以在文件内部或网站上找到”。 - Sergey
1我从未收到任何关于安装来源的指示,我只收到一个带有一些install.sh或configure文件的文件夹。你下载哪些来源? - Alvar
@sergey 现在好一些了吗? - Alvar
4@Alvar: ./configure && make && sudo make install 假设该软件包使用自动配置和编译程序的 autoconf 风格。你应该搜索 INSTALLREADME 或类似的文件。另外,如果前缀设置为特权位置(默认情况),make install 将无法工作。因此,请使用 sudo make install 或将其安装到主目录中的一个目录中,使用 ./configure --prefix=~/yourprogram。然后将 ~/yourprogram/bin 添加到你的 $PATH 中,或在 ~/bin/ 中创建符号链接。 - Lekensteyn
1请注意,关于k3b的部分是因为这个答案是从另一个问题合并而来的(我猜测那个问题是关于从源代码安装k3b)。所以如果你不打算安装k3b,请不要按照那个步骤!不过并不是说k3b不好 =P - MiJyn
如果配置文件不存在,会怎么样? - Pooja Khatri

这仅适用于已预先编译但打包为tar文件的.tar.*文件。

好的,对于初学者来说,这是一个相当具有挑战性的任务,但只要按照我的指示操作,就应该没问题。

首先,下载.tar.*文件,并将其保存下来。不要打开它。(在这些示例中,我将安装Dropbox Beta build,因为我本来就打算安装它,所以我干脆顺便记录一下安装过程。)

在下载完文件后,(假设你将其保存在Downloads目录中),输入以下命令:

cd Downloads
sudo cp dropbox-lnx.x86_64-1.5.36.tar.gz /opt/

注意:使用您下载的文件名。(例如,对于Firefox Nightly 19.0a1 64位版本,您需要键入sudo cp firefox-19.0a1.en-US.linux-x86_64.tar.bz2 /opt/
现在,切换到/opt/目录,解压程序并删除旧文件:
cd /opt/
sudo tar -xvf dropbox-lnx.x86_64-1.5.36.tar.gz
sudo rm -rf dropbox-lnx.x86_64-1.5.36.tar.gz

再次使用下载文件的名称。不要忘记扩展名。

好的,请检查提取的文件夹的名称:

ls -a

你会得到类似这样的东西:
james@james-OptiPlex-GX620:/opt$ ls -a
.  ..  .dropbox-dist
james@james-OptiPlex-GX620:/opt$

好的,在我们的例子中,我们安装了Dropbox,并且唯一的文件夹叫做.dropbox-dist。那可能就是我们想要的文件夹,所以在下一步中输入这个(在末尾添加一个/,因为它是一个文件夹):
sudo chmod 777 .dropbox-dist/

好的,现在它已经标记为可执行文件了,所以是时候创建一个符号链接了(这样你就可以从终端运行它了)。
sudo ln -s /opt/.dropbox-dist/ /usr/bin/dropbox

注意:这是在终端中执行的命令:sudo ln -s /opt/{FOLDER_NAME}/ /usr/bin/{PROGRAM_NAME}!确保使用简化且小写的程序名称替换{PROGRAM_NAME}(例如,对于Firefox Nightly,请输入firefox-nightly;对于uTorrent服务器,请输入utserver)。无论您在此处键入什么,都将成为您从终端运行程序时使用的命令。将/usr/bin/视为Windows系统上的PATH变量。

好了,你已经完成了。程序现在已安装并可以从终端运行。
什么?你说你想要从启动器运行它,并且还希望它有一个图标?没问题!

这部分非常简单:

gksu gedit /usr/share/applications/dropbox.desktop

注意:如果您正在覆盖之前的安装,请使用 ls -a /usr/share/applications 命令,并搜索已存在的 .desktop 文件。将该文件的名称替换进去。

现在,这是您创建图标的地方。以下是一个良好的模板;请适当编辑。

[Desktop Entry]
Version=1.0
Name=Firefox Nightly
Comment=Browse the World Wide Web
GenericName=Web Browser
Keywords=Internet;WWW;Browser;Web;Explorer
Exec=firefox-nightly
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=/opt/firefox/icons/mozicon128.png
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
Actions=NewWindow;

[Desktop Action NewWindow]
Name=Open a New Window
Exec=firefox-nightly -new-window
OnlyShowIn=Unity;

你可能想完全不选MimeType选项。如果你没有这样做,那可是相当糟糕的。
现在,点击"保存",关闭它,你就可以开始工作了!

2我认为这不是一个好的答案,因为你没有区分你拥有的二进制软件和源代码中的软件。 - BuZZ-dEE
2我觉得你收到负评是因为你没有解释如何处理大多数源代码压缩文件的下载。仅仅因为Dropbox以一个方便的二进制文件出现,可以直接解压到/opt目录,并不意味着每个应用程序都会以这种方式传送,尤其是因为Dropbox是闭源的。这并没有说明如何获取源码包,进行构建和安装。 - Bruno Pereira
好的,现在已经标记为可执行文件了,所以是时候创建一个符号链接了(这样你就可以从终端运行它)。 - user25656
2应该将 sudo ln -s /opt/{FOLDER_NAME}/ etc. 改为 sudo ln -s /opt/{FOLDER_NAME}/{程序真实名称} ? etc. - Ferroao
那么cp dropbox-lnx.x86_64-1.5.36.tar.gz /opt/命令会自动解压缩存档吗? - Cadoiz

首先要做的事情

一般来说,不建议从互联网上下载和安装应用程序文件。大多数Ubuntu应用程序都可以通过系统上的"Ubuntu软件中心"获得(例如,K3B 安装K3B)。从软件中心安装更安全、更简单,并且可以让应用程序从Ubuntu获取更新。

话虽如此,如何安装tar

最好的方法是首先将tar.bz2和tar.gz包下载到您的系统中。然后右键单击文件,选择提取以解压缩文件。打开您提取的文件夹的位置,查找Readme文件并双击打开它,按照说明安装特定的包,因为可能会有不同的说明可用于正确安装文件,而正常的例行程序可能无法避免一些错误。


首先,安装build-essential软件包非常重要,它包含了编译所需的所有程序。
在阅读上述的INSTALL文件并满足先决条件后,你就可以开始施展魔法了。
./configure && make && sudo make install

具体回答很困难,因为每个软件的构建过程可能不同,即使它们以TAR/GZ格式存档。

对于我所了解的大多数源代码,你首先需要将tarball存档解压到你选择的文件夹中。然后,大多数源代码依赖AUTOCONF和MAKE程序,因此你需要使用以下命令:

./configure
make

构建您的二进制文件,然后:
make install

安装到系统中。
"./configure" 使用 autoconf 机制来获取有关您的系统的信息,并准备源文件中的构建脚本,以便构建与您的安装兼容的适当二进制文件。 "make" 将调用构建本身,从源代码创建二进制文件。 "make install" 然后将二进制文件、文档、配置文件等复制到系统的适当文件夹中,以便软件对用户可用。
这只是一个非常基本的解释,真正的答案是:阅读提供的源代码文档... 只有在那里,您才会确切地知道如何构建它。

无论是官方的还是PPA/其他非官方的软件仓库,你都应该尽量从仓库中安装软件。这样,你在安装其他系统更新的同时,也会得到所有稳定版本、安全性和新功能的更新。另一个优点是,你不需要担心构建、依赖关系和更难卸载(因为应用程序不会出现在synaptic中),这些问题在使用tar文件时可能会遇到。

例如,你可以通过安装mysql-server软件包来安装mysql。

如果你真的想使用tar文件,常见的过程是运行以下命令(make install可能需要sudo权限):

./configure
make
make install

请注意,上述命令中的一些可能是不必要的,请参考tar文件中的任何readme文件或尝试运行./configure --help

文件扩展名为tar.bz2的文件通常被称为压缩的 tarball。 其他例子包括.tar.gz(更常见)和.tgz
您可以使用...来提取此文件。
tar -xvjf file.tar.bz2

这将从tarball中提取文件到当前目录,并在其中创建一个新目录,其中包含来自tarball的文件。
关于选项的简短说明:
- x:提取 - v:详细显示正在提取的内容 - j:压缩类型,在这种情况下是bzip2 - f:'接下来是文件名'
但这可能还不够。根据它的内容,它可能是一个完整的编译设置,您需要进入新目录并启动可执行文件。它也可能包含您需要配置、编译和安装的程序源代码。 通常(即我会假设),它应该包含一个解释下一步操作的readme文件。
警告:
像这样安装软件不会安装任何依赖项,并且如果您在安装这些依赖项之前尝试安装tarball,它会报错。 使用网站或文件本身查找是否有依赖项,并首先安装这些依赖项。但请始终首先尝试找到.DEBian安装文件或链接到ppa,以便您可以使用Ubuntu软件中心。
如果你想安装GIMP插件,但是你跳过了安装过程中提到的一些部分。请点击这个链接查看详细步骤。
wget ftp://ftp.gtk.org/pub/babl/0.1/babl-0.1.10.tar.bz2
tar -xvf babl-0.1.10.tar.bz2
cd babl-0.1.10/
./configure
make
sudo make install

你还需要 gegl
wget ftp://ftp.gimp.org/pub/gegl/0.2/gegl-0.2.0.tar.bz2
tar -xvf gegl-0.2.0.tar.bz2
cd gegl-0.2.0/
./configure
make
sudo make install

在使用wget下载文件之前,请访问网站并查看是否有更新版本。这些指示是从2012年5月3日的,所以可能已经过时了 ;)

1我运行了tar -xvjf./configure,然后出现了一个错误消息,请查看我在原始帖子中的编辑。 - Wut
是的。另外,我做了那个并且得到了另一个错误,请查看我在原始帖子中的第二次编辑。 - Wut
你能换个说法吗? - Wut
你安装了babl。第一次出错时,只有babl报了错。所以尝试配置第一个tarball(那个报错的),现在可能会正常工作。 - Rinzwind
哦,我明白了。根据你在帖子中提供的教程链接,我猜想还有很多事情我需要做。这一切对我来说都太复杂了,所以我想我只能等待一个.deb文件了。不过还是谢谢你的帮助! - Wut

来自Linux Mint官方网站

从存档文件(.zip tar.gz等)安装:

这些存档文件通常包含软件包的源代码。每个存档文件通常有不同的安装方法。我将讨论一种通用方法,据说适用于所有存档文件。

通用要求:

  1. flex

  2. bison或bison++

  3. python

由于这些存档文件包含源代码,您的系统需要所需的编程语言来编译和构建源代码。因此,上述通用要求可能不足够。在这种情况下,您必须通过#1、#2、#3中的一个过程安装所需的软件包(需要互联网连接)。您可以在存档文件中的自述文件中了解有关软件依赖项的信息。

步骤:

  1. 双击打开存档文件,然后使用存档管理器提取它。

  2. 输入以下代码:

cd path-to-the-extracted-folder

3. 在提取的文件夹中仔细查看...
a. 如果你找到一个名为configure的文件,则...
./configure    
make
sudo make install

如果第一段代码无法执行,则在上述代码之前运行此代码:
chmod +x configure
如果你找到一个名为install.sh的文件,则

代码:

chmod +x install.sh

./install.shsudo ./install.sh(如果需要root权限)

或者您可以双击它并选择在终端中运行,或者直接运行。

N.B.:有时候会找到一个文件,类似于your_software_name.sh而不是install.sh。对于这种情况,您必须在前面的代码中将install.sh替换为正确的名称。

c. 如果找到一个名为install的文件,则

代码:

chmod +x install

./install 或者 sudo ./install(如果需要管理员权限)

或者你可以双击它并选择在终端中运行或直接运行。

d. 如果找到一个名为 make 的文件(如果没有 configure 文件),那么

代码:

make
sudo make install

如果你仍然找不到所需的文件, 那么它可能在一个特殊的文件夹中(通常是一个名为“bin”的文件夹)。使用适当的路径,用“cd”命令进入这个文件夹,然后再次查找并按照相同的步骤操作。