当前位置: 首页 > 知识库问答 >
问题:

“make install”和“make altinstall”在细节上的差异

松旻
2023-03-14

我的情况如下:

我正在使用Ubuntu

第一次安装时,我运行了:

cd Python2.7.4
./configure --prefix=/usr
make
su root
make install

这将Python 2.7安装到我的系统。它将在/usr/bin中创建一个链接python,链接到/usr/bin中的python2.7。所以当我输入

但是当我这样安装时:

cd Python2.7.4
./configure --prefix=/usr
make
su root
make altinstall

/usr/bin中的链接“python”仍然存在,并且链接到python2。6这是默认的系统版本。当然,我可以删除它并创建一个新的软链接,链接到python2。7

除了/usr/bin中的链接之外,命令“使安装”和“使阿尔特安装”之间有什么区别?


共有1个答案

葛修真
2023-03-14

让我们来看看生成的Mag文件!

首先,安装目标:

install:         altinstall bininstall maninstall

它完成了altinstall的所有功能,以及bininstallmaninstall

这里是bininstall;它只创建python和其他符号链接。

# Install the interpreter by creating a symlink chain:
#  $(PYTHON) -> python2 -> python$(VERSION))
# Also create equivalent chains for other installed files
bininstall:     altbininstall
        -if test -f $(DESTDIR)$(BINDIR)/$(PYTHON) -o -h $(DESTDIR)$(BINDIR)/$(PYTHON); \
        then rm -f $(DESTDIR)$(BINDIR)/$(PYTHON); \
        else true; \
        fi
        (cd $(DESTDIR)$(BINDIR); $(LN) -s python2$(EXE) $(PYTHON))
        -rm -f $(DESTDIR)$(BINDIR)/python2$(EXE)
        (cd $(DESTDIR)$(BINDIR); $(LN) -s python$(VERSION)$(EXE) python2$(EXE))
        ... (More links created)

这里是maninstall,它只创建到Python手册页面的“未版本”链接。

# Install the unversioned manual pages
maninstall:     altmaninstall
        -rm -f $(DESTDIR)$(MANDIR)/man1/python2.1
        (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python2.1)
        -rm -f $(DESTDIR)$(MANDIR)/man1/python.1
        (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python2.1 python.1)

TLDR:altinstall跳过创建python链接和手动页面链接,install将隐藏系统二进制文件和手动页面。

 类似资料:
  • 下面是我的案例: 第一次安装的时候,我跑: 这将Python2.7安装到我的系统中。它将在中创建链接“python”,链接到中的。所以当我键入时,系统将为我启动Python 2.7.4,就像键入时一样。 但当我这样安装时: 中的链接“python”仍然存在,并且链接到这是默认的系统版本。当然,我可以移除它并创建一个新的链接到的软链接。 除了中的链接之外,命令“make install”和“make

  • KK:MM,HH:MM和HH:MM格式有什么区别? 打印:

  • 前面对类的有关内容已经描述不少了,其实话题远远没有结束,不过对于初学者,掌握这些已经算是入门,在以后的实践中,还需要进行体会和感悟。 这几天和几个朋友以各种途径讨论过OOP的相关问题,他们是:令狐虫、Frank、晋剑、小冯 大家对OOP有不同看法,所谓工程派和学院派看法不一致。从应用的角度看,工程派的观点是值得推荐的,那就是:不用太在意内部是怎么工作的,只要能够解决眼下的问题即可。但是,对于学习者

  • Linux 是大小写敏感的系统,所有的命令、路径、选项、参数、变量……都区分大小写 使用 TAB 键补全命令,无论任何时候,多按几次 TAB 总会有所帮助 Shell 的功能键能够协助您更高效的编辑命令,请熟悉其键绑定,尽量使用它 命令由 命令名 、 分隔符 、 选项 、 操作对象 构成 命令名 标识命令的功能,例如cp(copy)、mv(move)、rm(remove)…… 有些命令包含一些子命

  • 7.4.2 依赖和配置的细节 如上一节所述,可以将bean的属性或构造方法参数定义为到其他托管bean(即协作者)的引用,或者定义为已内置定义的值。因此,Spring的基于XML配置元数据支持在<property/>和<constructor-arg/>元素中定义子元素。 数值(基本类型、字符串等) <property/>元素的value属性给bean的属性或构造函数参数指定了一个可读的字符串。S