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


482

我已经下载了tar.gz文件。但是我不知道如何安装。如何安装这种文件?


11
如以下一些答案中所述,请尽量不要通过tarball安装软件包,因为它经常会使托管的软件包陷入混乱,并使您陷入无法解决的状态,并使您感到非常难过。在99.14159265%的情况下,最好通过软件包管理器进行安装。
Catskul 2015年

1
YouTube上有一个有用的视频对此进行了解释:youtube.com/watch?
v

1
我尝试了一下,它奏效了。
库拉桑加(Kulasangar)


这对ubuntu 18来说是一样的吗?还是也有UI可以做到吗?
tgkprog

Answers:


290

您需要做的第一件事是将文件从tar存档中提取到一个文件夹中。让我们将文件复制到桌面上。您可以通过在文件浏览器中右键单击存档文件的图标,然后在上下文菜单中按相应的条目来提取存档。解压缩档案后,应创建一个名称相似的新文件夹。例如program-1.2.3。现在,您需要打开终端并使用以下命令导航到该目录:

cd /home/yourusername/Desktop/program-1.2.3

请务必阅读一个名为INSTALLINSTALL.txtREADME,或者一个提取类似的东西。您可以使用以下ls命令从终端检查是否存在此类文件。可以使用以下命令打开和读取文件:

xdg-open INSTALL

其中INSTALL是文件名。该文件将包含正确的步骤以继续执行安装过程。通常,三个“经典”步骤是:

./configure
make
sudo make install

例如,如果运行configure提示您错误列出缺少的依赖项,则可能还需要安装一些依赖项 。

您也可以使用checkinstall代替make install

请记住,您的里程可能会有所不同。


33
我非常建议使用checkinstall,因为这将使卸载应用程序变得更加容易。
汤米·布伦

2
我个人喜欢将源代码放入〜/ src中,以保持桌面混乱:)
反转

2
..当然假设tarball包含某种源代码。
andol 2010年

1
这些是针对特定情况的说明...我遇到的更常见的情况不需要编译,要了解的重要信息是我应该在文件系统中将其移动以及如何制作.desktop图标文件
Selah 2015年

1
Tarball几乎每次都用于分发源代码。如果您有不寻常的tarball的任何特定示例,则可以考虑将其添加为答案,将是特定情况。
Andrea Lazzarotto 2015年

134

您不能“安装” .tar.gz文件或.tar.bz2文件。.tar.gz文件是gzip压缩的tarball,是压缩的档案(如.zip文件)。.bz2文件使用bzip2压缩。您可以.tar.gz使用以下方法提取文件:

tar xzf file.tar.gz

同样,您可以使用以下命令解压缩.tar.bz2文件

tar xjf file.tar.bz2

如果您希望查看解压缩过程中提取的文件,请添加v

tar xzvf file.tar.gz

即使没有Internet连接,您仍然可以使用Ubuntu的软件包管理系统,只需.debhttp://packages.ubuntu.com/下载文件即可。也不要忘记下载依赖项。

有关脱机安装软件包的简便方法,请参阅问题如何脱机安装软件?


Erm .....在没有Internet连接的情况下,如何下载.deb文件和相关文件...?
AlwaysLearning 2016年

3
@AlwaysLearning如何在没有Internet连接的情况下在此处发表评论?尝试链接的“如何离线安装软件”链接。
Lekensteyn

有时居然还有没有必要安装。只需将存档文件复制/移动到正确的文件夹中即可:首先,例如,通过找出当前安装所在的位置which <SoftwareName>。然后将提取的tar.gz存档内容移动到该文件夹​​以覆盖内容。
AlQuemist

60

您如何从源代码编译程序

  1. 打开控制台
  2. 使用命令cd导航到正确的文件夹。如果有包含安装说明的自述文件,请改用该文件。
  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

或通过使用软件中心并搜索MYPACKAGE。但是,如果不存在,则与源一起去。


7
好吧,更通用的说明将是“下载文件,解压缩并在网站内部或网站上查找安装说明”。
谢尔盖

1
我从源头上没有任何安装说明,只能得到包含一些install.sh或配置文件的文件夹。您下载什么资源?
阿尔瓦(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 2011年

1
请注意,有关k3b的部分是因为此答案是与另一个问题(我想是关于从源代码安装k3b)合并而成的。因此,如果您打算安装k3b,请不要那样做!并不是说k3b不好= P
MiJyn

21

第一件事

通常建议从Internet文件下载和安装应用程序。大多数Ubuntu应用程序都可以通过系统上的“ Ubuntu软件中心”获得(例如K3B 安装K3B)。从软件中心进行安装更加安全,容易得多,并且将允许该应用从Ubuntu中获取更新。

也就是说,如何安装tar软件包

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


21

这仅适用于.tar.*已预编译代码但打包到tar文件中的文件。

好的,对于初学者来说,这是一项相当艰巨的任务,但只要按照我的指示进行,就可以了。

首先,下载.tar.*文件并保存。不要打开它。(在这些示例中,我将安装Dropbox Beta构建,因为无论如何我都要安装它,因此我认为我也可以记录安装情况。)

下载文件后,(假设您已将文件保存到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。那可能是我们想要的文件夹,因此将其插入下一步(/在最后添加a ,因为它是文件夹)。

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。无论您在此处键入什么,都是在从Windows上运行该程序时将使用的命令。终端。/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 2012年

3
哇,所有的否决票是怎么回事?我记得刚接触Ubuntu。我会为这样的教程提供身体部位,计算机零件或两者兼而有之
JamesTheAwesomeDude 2012年

1
认为您获得了否决权,因为您没有解释如何处理下载的大多数源代码打包文件。仅仅因为dropbox附带了可以提取的好二进制文件/opt,并不意味着每个应用程序都将以这种方式交付,特别是因为dropbox是封闭源代码。这并没有说明如何获取,打包并按原样安装它。
布鲁诺·佩雷拉

“好吧,现在它已被标记为可执行文件,因此是时候创建一个符号链接了(这是允许您从Terminal运行它的原因)”是什么意思?

sudo ln -s / opt / {FOLDER_NAME} /等。应该成为sudo ln -s / opt / {FOLDER_NAME} / {程序实名}吗?等
Ferroao

16

首先,重要的是安装软件包build-essential,它包含您自己编译所需的所有程序。

在按照上述方式阅读INSTALL文件并满足前提条件之后,您就可以进行魔术了。

./configure && make && sudo make install

11

很难具体回答,因为即使将每个软件存档为TAR / GZ,每个软件的构建过程也可能不同。

对于大多数我知道的源代码,我可以说的是,您首先需要将tarball归档文件提取到您选择的文件夹中。然后,大多数源代码都依赖于AUTOCONF和MAKE程序,因此您将需要使用以下命令:

./configure
make

要构建二进制文件,然后:

make install

要将其安装在系统中。

“ ./configure”使用autoconf机制来检索系统上的信息,并在源文件中准备构建脚本,以便构建与您的安装兼容的适当二进制文件。“ make”将调用构建本身,该构建将根据源代码创建二进制文件。然后,“ make install”将二进制文件,文档,配置文件等复制到系统的相应文件夹中,以便用户可以使用该软件。

这是一个非常基本的解释,真正的答案是:阅读源代码随附的文档...只有在这里,您才确切知道如何构建它。


7

无论是官方,PPA /任何其他非官方存储库,您都应始终尝试从存储库安装软件。这样,在安装其他系统更新时,您将获得所有稳定的发行版,安全性和新功能更新。另一个优点是,您无需担心使用tar文件进行构建,依赖关系和更难卸载(因为该应用程序不会在突触中出现)。

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

如果您确实要使用tar文件,则通常的过程是运行(make install可能需要sudo):

./configure
make
make install

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


6

带有扩展名的文件tar.bz2通常称为compressed tarball。其他示例是.tar.gz(更常见的)和.tgz

您可以使用以下命令解压缩该文件:

tar -xvjf file.tar.bz2

这会将tarball中的文件提取到您当前所在的目录中,并在其中创建一个新目录,其中包含tarball中的文件。

关于选项的简短说明:

  • -x:提取
  • -v:详细:显示正在提取的内容
  • -j:压缩类型,在这种情况下 bzip2
  • -f:“下一个文件名”

但是,这可能还不够。根据它是什么,它可能具有完整的编译设置,并且需要CD进入新目录并启动可执行文件。它还可能包含您需要合用,进行,进行安装的程序的源代码。通常(即,我会假设)它应该包含一个自述文件,该文件说明了下一步要做什么。

警告:

像这样安装软件将不会安装任何依赖项,如果您在安装这些依赖项之前尝试安装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收到一条错误消息,请在原始帖子中查看我的编辑。
2012年

是。另外,我这样做了,又遇到了另一个错误,请在原始帖子中查看我的第二次编辑。
2012年

你能改一下吗?
2012年

您安装了babl。第一次遇到错误时,只会抱怨babl。因此,请尝试配置第一个tarball(抱怨babl的那个),现在它可以工作了。
Rinzwind

哦,我明白了。从您在文章中链接的教程来看,我认为我还有很多事情要做。这一切都困扰着我,所以我想我只需要等待.deb。不过,感谢您的帮助!
武汉理工大学

5

来自Linux Mint的官方网站

从档案安装(.zip tar.gz等):

这些档案通常包含软件包的来源。它们中的每一个通常都有不同的安装方法。我将讨论一种通用方法,该方法应该适用于所有方法。

一般要求:

  1. 柔性

  2. 野牛或野牛++

  3. 蟒蛇

由于这些归档文件包含源代码,因此您的系统需要使用必需的编程语言来编译和构建源代码。因此,上述一般要求包装对于您而言可能还不够。在这种情况下,您必须通过#1,#2,#3进程之一安装所需的软件包(需要Internet连接)。您可以在存档中包含的自述文件中了解有关软件的依赖性。

脚步:

  1. 双击存档管理器打开存档,然后将其解压缩。

  2. 码:

cd提取文件夹的路径

  1. 在提取的文件夹中仔细查看...。

一种。如果找到名为configure的文件,则

./configure    
make
sudo make install

如果第一个代码无法执行,请在上述代码之前运行此代码:

chmod +x configure

b。如果找到名为install.sh的文件,则

码:

chmod +x install.sh

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

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

注意:有时有一个文件,your_software_name.sh而不是找到类似文件install.sh。对于这种情况,您必须install.sh用之前的代码替换为正确的名称。

C。如果找到名为install的文件,则

码:

chmod +x install

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

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

d。如果找到名为make的文件(如果没有配置文件),则

码:

make
sudo make install

e。如果仍然找不到所需的文件

那么它可能位于特殊的文件夹中(通常位于名为的文件夹中bin)。使用cd带有适当路径的命令移动到该文件夹​​,然后再次查找并遵循相同的过程。


1

在编译提取的tar.gz-,tar.bz2-,tar.xz归档文件之前,您应该执行以下操作:

  1. 首先,您应检查要尝试编译的应用程序的Ubuntu软件包是否存在。
    例如,如果你试图编译同情你应该寻找它包档案上packages.ubuntu.com为您释放(或所有版本)。
    对于结果同情

    包同理

    • 可信任(14.04LTS)(gnome):GNOME多协议聊天和呼叫客户端3.8.6-0ubuntu9:amd64 arm64 armhf i386 powerpc ppc64el
    • trusty-updates(gnome):GNOME多协议聊天和呼叫客户端3.8.6-0ubuntu9.2:amd64 arm64 armhf i386 powerpc ppc64el
    • xenial(16.04LTS)(gnome):GNOME多协议聊天和呼叫客户端[ Universe ]
      3.12.11-0ubuntu3:amd64 arm64 armhf i386 powerpc ppc64el s390x
    • artful(gnome):GNOME多协议聊天和呼叫客户端[ Universe ]
      3.25.90 + really3.12.14-0ubuntu1:amd64 arm64 armhf i386 ppc64el s390x
    • 仿生(gnome):GNOME多协议聊天和呼叫客户端[ Universe ]
      3.25.90 + really3.12.14-0ubuntu1:amd64 arm64 armhf i386 ppc64el s390x
  2. 然后安装build-essential软件包

    sudo apt-get install build-essential
    
  3. 我们知道包具有依赖性(在执行和编译上都有),因此我们需要安装编译时依赖性(也称为生成依赖性)。您应该在软件和更新()中启用源代码存储库(deb-src),然后运行software-properties-gtk

    sudo apt-get build-dep empathy
    
  4. 然后,您可以提取下载的源存档并尝试以常规方式进行编译

    wget http://ftp.gnome.org/mirror/gnome.org/sources/empathy/3.25/empathy-3.25.90.tar.xz
    tar -xf empathy-3.25.90.tar.xz
    ./configure
    make
    sudo make install # or better - checkinstall
    

    注意:在此示例中,./configure阶段将在Ubuntu Xenial(16.04 LTS)上失败,因为不满足库版本依赖性。
    在这种情况下,您有两种选择-使用存储库中的较早的预编译打包版本,尝试在PPA中查找较新的版本,或将整个Ubuntu升级到下一个版本(最好是LTS)。


0

通常,不需要从源代码编译以tar.gz文件形式提供的程序。它们只需要解压缩,卡在适当的目录中并链接到可执行路径即可。这是我今天使用的一些示例命令。

tar -xzf ~/Downloads/Newprogram.tar.gz
sudo mv Newprogram/ /usr/local/lib/
sudo ln -s /usr/local/lib/Newprogram/run.sh /usr/local/bin/newprogram.sh

帖子告知了我使用的目录: 在哪里安装程序?


0

有时,程序包包含具有与软件相同名称的可运行文件。您可以在终端上运行它。

$ ./Software-Name
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.