导航:首页 > 源码编译 > git编译openssl

git编译openssl

发布时间:2022-04-22 08:07:28

㈠ 如何在CentOS 7中安装Git

Git是在今天的软件开发行业一个非常有用的版本控制工具。我一直使用Git。于是为linux公社的读者写一篇如何在CentOS 7中安装Git教程

什么是Git?

如果你曾经使用过Github这样的网站或者在Bitbucket 购买过代码,把它展示给你的朋友,那么你可能知道Git是什么。至少,你肯定对它有过了解。

Git是软件开发中最广泛使用的版本控制系统,其最初发布于九年前的2005年4月7日,主要是为了保证一个大型的分布式开发项目的顺利进行。和客户端 - 服务器系统的开发不同,开发者独立于网络访问或中央服务器,因为每个Git的工作目录是一个全面的资料库。

创始人Linus Torvalds决定遵循GNU通用公共许可证第二版的协议条款,免费的发布Git。维基网络中可以了解到,有许多语言来正在开发这个版本控制系统,如Perl, Bash, C and Tcl。

在GentOS7上安装Git之前,我必须明确Git支持主流的操作系统,如Linux,POSIX,Windows和OS X.

--------------------------------------分割线 --------------------------------------

GitHub 教程系列文章:

GitHub 使用教程图文详解 http://www.linuxidc.com/Linux/2014-09/106230.htm

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm

Git 服务器搭建与客户端安装 http://www.linuxidc.com/Linux/2014-05/101830.htm

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm

分享实用的GitHub 使用教程 http://www.linuxidc.com/Linux/2014-04/100556.htm

--------------------------------------分割线 --------------------------------------

前期准备

请确保您的机器上安装有CentOS 7系统以及一个帐户具有root权限。因为我们需要在系统上安装软件。

安装Git - 从源代码编译

从源代码编译和安装软件并不是很难,但是可以肯定它需要一些知识,我强烈建议仔细地按照本教程的每个步骤,尤其是如果你之前还没有这样做过。

这个方法可以使我们获得包含最新的功能的最新的版本,但这种方法的缺点是,一旦安装完成正在被在CentOS系统中使用的yum包管理器不能更新

因为一些软件包之间有依赖关系,我们必须你必须以手动安装一些软件,才可以继续安装。于是我们可以打开CentOS7终端,运行以下命令

拿到root权限

su root

使用下面的命令

sudo yum install "Development Tools"

如果 上面的命令没有执行,也可以使用下面的命令来解决这个问题。

yum groupinstall "Development Tools"

选择Y并按下回车键。

然后运行下面的命令来安装需要本教程的一些其他的包。

sudo yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel
一旦依赖已经安装那么,我们需要找出并下载的Git软件的最新版本。下面的截图显示,我们可以得到最新版本的页面信息。

你可以从上面的截图看到最新的版本是V2.3.0。不要下载带有-rc的,因为它代表了一个候选发布版本。

通过使用wget的工具下载的Git的2.3.0版本。

wget https://Github.com/Git/Git/archive/v2.3.0.tar.gz
然后使用tar工具来解压您刚刚下载的.tar归档文件。

tar xvf v2.3.0.tar.gz

㈡ 有大侠在ios下编译过librtmp的库文件么

编译librtmp需要先编译openssl,因为librtmp依赖openssl

首先编译openssl:

把以下内容保存为shell脚本:

#!/bin/sh

VERSION="1.0.1h" #指明openssl的版本信息,比如下载的是openssl-1.0.1h.tar.gz那么对于就填写1.0.1h
SDKVERSION="7.1" #指明ios sdk的版本号,目前最新的是7.1,不清楚的同学可以 ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/ 一下看看自己的iPhoneOS7.1.sdk是不是7.1

CURRENTPATH=`pwd`
ARCHS="i386 armv7 armv7s arm64"
BUILDPATH="${CURRENTPATH}/build"
LIBPATH="${CURRENTPATH}/lib"
INCLUDEPATH="${CURRENTPATH}/include"
SRCPATH="${CURRENTPATH}/src"
LIBSSL="libssl.a"
LIBCRYPTO="libcrypto.a"
DEVELOPER=`xcode-select -print-path`

if [ ! -d "$DEVELOPER" ]; then
echo "xcode path is not set correctly $DEVELOPER does not exist (most likely because of xcode > 4.3)"
echo "run"
echo "sudo xcode-select -switch <xcode path>"
echo "for default installation:"
echo "sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer"
exit 1
fi

set -e
if [ ! -e openssl-${VERSION}.tar.gz ]; then
echo "Downloading openssl-${VERSION}.tar.gz"
curl -O http://www.openssl.org/source/openssl-${VERSION}.tar.gz
else
echo "Using openssl-${VERSION}.tar.gz"

# Remove the source directory if already exist
rm -rf "${SRCPATH}/openssl-${VERSION}"
fi

mkdir -p "${SRCPATH}"
mkdir -p "${BUILDPATH}"
mkdir -p "${LIBPATH}"
mkdir -p "${INCLUDEPATH}"

tar zxf openssl-${VERSION}.tar.gz -C "${SRCPATH}"
cd "${SRCPATH}/openssl-${VERSION}"

LIBSSL_REPO=""
LIBCRYPTO_REPO=""

for ARCH in ${ARCHS}
do
if [ "${ARCH}" == "i386" ];
then
PLATFORM="iPhoneSimulator"
else
sed -ie "s!static volatile sig_atomic_t intr_signal;!static volatile intr_signal;!" "crypto/ui/ui_openssl.c"
PLATFORM="iPhoneOS"
fi
export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export CROSS_SDK="${PLATFORM}${SDKVERSION}.sdk"
export BUILD_TOOLS="${DEVELOPER}"

echo "Building openssl-${VERSION} for ${PLATFORM} ${SDKVERSION} ${ARCH}"
echo "Please stand by..."

export CC="${BUILD_TOOLS}/usr/bin/gcc -arch ${ARCH}"

OUTPATH="${BUILDPATH}/openssl-${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
mkdir -p "${OUTPATH}"
LOG="${OUTPATH}/build-openssl-${VERSION}.log"

if [[ "$VERSION" =~ 1.0.0. ]]; then
./Configure BSD-generic32 --openssldir="${OUTPATH}" > "${LOG}" 2>&1
else
./Configure iphoneos-cross --openssldir="${OUTPATH}" > "${LOG}" 2>&1
fi

# add -isysroot to CC=
sed -ie "s!^CFLAG=!CFLAG=-isysroot ${CROSS_TOP}/Platforms/${PLATFORM}.platform/Developer/SDKs/${CROSS_SDK} -miphoneos-version-min=7.0 !" "Makefile"

make >> "${LOG}" 2>&1
make install >> "${LOG}" 2>&1
make clean >> "${LOG}" 2>&1

LIBSSL_REPO+="${OUTPATH}/lib/${LIBSSL} "
LIBCRYPTO_REPO+="${OUTPATH}/lib/${LIBCRYPTO} "
done

echo "Build library..."
lipo -create ${LIBSSL_REPO}-output ${LIBPATH}/${LIBSSL}
lipo -create ${LIBCRYPTO_REPO}-output ${LIBPATH}/${LIBCRYPTO}

cp -R ${BUILDPATH}/openssl-iPhoneSimulator${SDKVERSION}-i386.sdk/include/openssl ${INCLUDEPATH}/
echo "Building done."
echo "Cleaning up..."
rm -rf ${SRCPATH}/openssl-${VERSION}
echo "Done."

保存脚本,添加脚本的执行权限(chmod +x 脚本名称)

运行脚本
不出意外是可以编译成功的,如果失败,可以以打开那个log文件,查看失败原因。

编译成功以后,把lib文件和include拷贝到你的librtmp目录(可以新建一个空得librtmp目录),在librtmp目录里面同样写一个shell脚本,脚本如下:

#!/bin/sh

SDKVERSION="7.1" #这里跟openssl的地方是一个意思

CURRENTPATH=`pwd`
ARCHS="i386 armv7 armv7s arm64"

LIBPATH="${CURRENTPATH}/lib" #这里就是刚才拷贝过来的目录,不要修改,因为librtmp最后生成的也放到了这个下面
INCLUDEPATH="${CURRENTPATH}/include" #这里就是刚才拷贝过来的目录,不要修改,因为librtmp最后生成的也放到了这个下面

LIBRTMPREPO="git://git.ffmpeg.org/rtmpmp"
BUILDPATH="${CURRENTPATH}/build"
SRCPATH="${CURRENTPATH}/src"
LIBRTMP="librtmp.a"
DEVELOPER=`xcode-select -print-path`

if [ ! -d "$DEVELOPER" ]; then
echo "xcode path is not set correctly $DEVELOPER does not exist (most likely because of xcode > 4.3)"
echo "run"
echo "sudo xcode-select -switch <xcode path>"
echo "for default installation:"
echo "sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer"
exit 1
fi

# Check whether openssl has already installed on the machine or not.
# libcrypt.a / libssl.a

set -e
echo 'Check openssl installation'
if [ -f "${LIBPATH}/libcrypto.a" ] && [ -f "${LIBPATH}/libssl.a" ] && [ -d "${INCLUDEPATH}/openssl" ]; then
echo 'Openssl for iOS has already installed, no need to install openssl'
else
echo 'Openssl for iOS not found, will install openssl for iOS'
./build-libssl.sh
echo 'Succeeded to install openssl'
fi

# Download librtmp source code from git repository
# We assuem the user already installed git client.
echo 'Clone librtmp git repository'

# Remove the directory if already exist
rm -rf "${SRCPATH}/rtmpmp"

git clone ${LIBRTMPREPO} src/rtmpmp
cd "${SRCPATH}/rtmpmp/librtmp"

LIBRTMP_REPO=""

for ARCH in ${ARCHS}
do
if [ "${ARCH}" == "i386" ];
then
PLATFORM="iPhoneSimulator"
else
PLATFORM="iPhoneOS"
fi
export CROSS_TOP="${DEVELOPER}/Platforms/${PLATFORM}.platform/Developer"
export CROSS_SDK="${PLATFORM}${SDKVERSION}.sdk"
export BUILD_TOOLS="${DEVELOPER}"

echo "Building librtmp for ${PLATFORM} ${SDKVERSION} ${ARCH}"
echo "Please wait..."

# add arch to CC=
sed -ie "s!AR=\$(CROSS_COMPILE)ar!AR=/usr/bin/ar!" "Makefile"
sed -ie "/CC=\$(CROSS_COMPILE)gcc/d" "Makefile"
echo "CC=\$(CROSS_COMPILE)gcc -arch ${ARCH}" >> "Makefile"

export CROSS_COMPILE="${DEVELOPER}/usr/bin/"
export XCFLAGS="-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.0 -I${INCLUDEPATH} -arch ${ARCH}"

if [ "${ARCH}" == "i386" ];
then
export XLDFLAGS="-L${LIBPATH} -arch ${ARCH}"
else
export XLDFLAGS="-isysroot ${CROSS_TOP}/SDKs/${CROSS_SDK} -miphoneos-version-min=7.0 -L${LIBPATH} -arch ${ARCH}"
fi
OUTPATH="${BUILDPATH}/librtmp-${PLATFORM}${SDKVERSION}-${ARCH}.sdk"
mkdir -p "${OUTPATH}"
LOG="${OUTPATH}/build-librtmp.log"

make SYS=darwin >> "${LOG}" 2>&1
make SYS=darwin prefix="${OUTPATH}" install >> "${LOG}" 2>&1
make clean >> "${LOG}" 2>&1

LIBRTMP_REPO+="${OUTPATH}/lib/${LIBRTMP} "
done

echo "Build universal library..."
lipo -create ${LIBRTMP_REPO}-output ${LIBPATH}/${LIBRTMP}

mkdir -p ${INCLUDEPATH}
cp -R ${BUILDPATH}/librtmp-iPhoneSimulator${SDKVERSION}-i386.sdk/include/ ${INCLUDEPATH}/

echo "Building done."
echo "Cleaning up..."

rm -rf ${SRCPATH}/rtmpmp
echo "Done."

保存脚本

运行脚本

不出意外就编译成功了。

㈢ unbuntu 安装git出错

应该是依赖问题,你为什么不下deb的包或者apt-get安装呢。。

㈣ git 编译器为什么编译不了jar包

在eclipse中导入Git项目缺少jar包,可以把缺少的导入进来就可以了。
工具:
eclipse
方法:
在项目名上右击,依次点击【New】-->【Floder】,打开新建文件夹窗口

输入文件夹名称【lib】,点击【ok】。我们通常在lib文件夹中存放从外部引入的jar包

找到我们要引入的jar包,鼠标选中jar包,然后按住鼠标左键不放,把jar包拖到lib文件夹中。或先复制jar包,然后在lib文件夹上右击,选择复制。此时,打开选择框,我们选择默认的【 files】,点击【OK】关闭。然后我们就可以在lib文件夹下看到我们复制成功的jar包。

此时,只是把jar包复制到项目中,还不能使用。我们再在项目名上右击,依次选择
【Build Path】-->【Configure Build Path...】。
在打开的窗口中,先选中【Libraries】页,再从右边的按钮中点击
【add JARs...】

在打开的窗口中,我们依次展开本项目的项目和lib文件夹,然后选中我们刚才复制到项目中的jar包,然后点击【OK】关闭窗口

此时,我们在刚才打开的【Libraries】页中可以看到我们引入的jar包的名称。点击【OK】确认。

此时,在Eclipse中,我们就可以使用这个jar包了。

㈤ linux怎样编译git源码

方法/步骤1
用git --version命令检查是否已经安装

2
在CentOS5的版本,由于yum源中没有git,所以需要预先安装一系列的依赖包。在CentOS6的yum源中已经有git的版本了,可以直接使用yum源进行安装。

3
yum -y install git
但是yum源中安装的git版本是1.7.1,Github等需要的Git版本最低都不能低于1.7.2 。所以我们一般不用上面的方法,而是下载git源码编译安装。

END
编译安装git
1
首先更新系统
yum -y update
更新完成之后有6.5变成6.7了

㈥ 怎么在ubuntu上安装git

linux下软件的安装方式有多种,最简单的莫过于从软件中心直接安装了或者用命令行直接安装
sudo apt-get install git

但是这样的安装却使我们体会不到最新版本的功能,如果我们想要体验最新的,或者修改源代码,就必须编译安装了。我们可以直接在git 的官网
上下载并安装。
编译之前,我们必须首先安装以下软件,否则会编译不通过。

sudo apt-get install libcurl4-openssl-dev libexpat1-dev

安装完后我们边可以编译了,当然编译之前我们必须进入源码所在的目录,至于怎么进,大家就自己解决吧,进入后执行下面命令进行编译:

make prefix=/usr/local all

最后执行
sudo make prefix=/usr/local install

进行安装。
最高明的方法还是我们自己在本地克隆一个git版本库,当然前提是你自己已经安装了git的否则的话,这种方发你是用不了的,克隆版本库:
首先进入你要存放的目录,当然也可以不进入,git clone 默认的第二个参数就是你的路径,省略的话就是你当前的路径:

git clone git://git.kernel.org/pub/scm/git/git.git

克隆后默认会检出(checkout)当前最新的代码当然你也可以装以往的版本,执行下面命令可以检查出历史所有的版本

git tag

比如我当下想检出v1.7.8.2,这个版本,我只需执行以下命令就行:

git checkout v1.7.8.2

检出后我们就可以使用上面介绍的方法进行编译了

㈦ 如何在 Linux 上安装 git 服务

Git 最初是一个在Linux下开发的非常流行的开源的版本控制系统(VCS)。与其他的VCS工具(如CVS或者SVN)不同,Git在某种意义上考虑的是“分布式”,你本地的Git工作目录就可以作为一个完整的版本控制库并具有版本跟踪能力。在这种模式中,每一个协作者都可以提交到本地仓库,并且如果需要的话可以有选择的推送到一个集中的版本仓库。这种可扩展性和冗余的修订控制系统是任何类型的大型协作任务中都是必须的。
一、通过包管理器安装 Git
Git 是所有主要的Linux发行版本都附带的功能。因此,安装Git的最简单的方法是使用您的Linux发行版的包管理器。
Debian, Ubuntu, or Linux Mint
$ sudo apt-get install git

Fedora, CentOS or RHEL
$ sudo yum install git

Arch Linux
$ sudo pacman -S git

OpenSUSE
$ sudo zypper install git

Gentoo
$ emerge --ask --verbose dev-vcs/git

二、从源代码安装Git
如果出于某种原因你想从源代码安装Git,你可以遵循下面的说明。
安装依赖
构建之前,首先安装Git依赖。
Debian,Ubuntu or Linux
$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev asciidoc xmlto docbook2x

Fedora, CentOS or RHEL
sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc xmlto docbook2x

从源代码编译Git
从 https://github.com/git/git/releases 下载最新版本的 Git,然后在 /usr 目录下构建和安装 Git。
注意,如果你想安装在一个其他的目录(如 /opt ),可以替换配置命令行中的 “--prefix=/usr ”。
$ cd git-x.x.x
$ make configure
$ ./configure --prefix=/usr
$ make all doc info
$ sudo make install install-doc install-html install-info

㈧ linux系统git 怎么安装

方法/步骤
1
用git --version命令检查是否已经安装

2
在CentOS5的版本,由于yum源中没有git,所以需要预先安装一系列的依赖包。在CentOS6的yum源中已经有git的版本了,可以直接使用yum源进行安装。

3
yum -y install git
但是yum源中安装的git版本是1.7.1,Github等需要的Git版本最低都不能低于1.7.2 。所以我们一般不用上面的方法,而是下载git源码编译安装。

END
编译安装git
1
首先更新系统
yum -y update
更新完成之后有6.5变成6.7了

2
安装依赖的包
yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
3
下载git源码并解压
$ wget https://github.com/git/git/archive/v2.3.0.zip
$ unzip v2.3.0.zip
$ cd git-2.3.0

4
编译安装:
将其安装在“/usr/local/git”目录下。
make prefix=/usr/local/git all
make prefix=/usr/local/git install
因为服务器时间不对编译的过程中报错如下图,使用ntpdate自动校正系统时间。报错“Writing perl.mak for Git make[2]: *** [perl.mak] Error 1”,请重启apache服务,service httpd restart。

5
编译完成之后使用git --version 查看git版本,居然还是1.7.1,这是因为它默认使用了"/usr/bin"下的git。
你可以用下面的命令查看git所在的路径:
$ whereis git
git: /usr/bin/git /usr/local/git /usr/share/man/man1/git.1.gz

6
我们要把编译安装的git路径放到环境变量里,让它替换"/usr/bin"下的git。为此我们可以修改“/etc/profile”文件(或者/etc/bashrc文件)。
vim /etc/profile
然后在文件的最后一行,添加下面的内容,然后保存退出。
export PATH=/usr/local/git/bin:$PATH

7
不想重启系统,使用source命令立即生效
source /etc/profile
8
然后再次使用git --version 查看git版本,发现输出2.3.0,表明安装成功。

㈨ 使用git 工具生成https 证书时,提示如下错误,请问如何解决,

建议去沃通CA 申请免费SSL证书,比自签名证书通用性好,浏览器信任。

㈩ 如何在redhat上安装git

使用包管理器安装Git

Git已经被所有的主流Linux发行版所支持。所以安装它最简单的方法就是使用各个Linux发行版的包管理器。

Debian,Ubuntu,或LinuxMint

代码如下:

$sudoapt-getinstallgit
Fedora,CentOS或RHEL

代码如下:

$sudoyuminstallgit

代码如下:

$sudodnfinstallgit
ArchLinux

代码如下:

$sudopacman-Sgit
OpenSUSE

代码如下:

$sudozypperinstallgit
Gentoo

代码如下:

$emerge--ask--verbosedev-vcs/git

从源码安装Git

如果由于某些原因,你希望从源码安装Git,按照如下介绍操作。

安装依赖包

在构建Git之前,先安装它的依赖包。

Debian,Ubuntu或LinuxMint

代码如下:

$sudoapt-getinstalllibcurl4-gnutls-devlibexpat1-devgettextlibz-devlibssl-devasciidocxmltodocbook2x
Fedora,CentOS或RHEL

代码如下:

$sudoyuminstallcurl-develexpat-develgettext-developenssl-develzlib-develasciidocxmltodocbook2x

从源码编译Git


代码如下:

$cdgit-x.x.x
$makeconfigure
$./configure--prefix=/usr
$makealldocinfo
$sudomakeinstallinstall-docinstall-htmlinstall-info
阅读全文

与git编译openssl相关的资料

热点内容
现代编译系统 浏览:403
python中列表是否为空 浏览:271
android编译release版本 浏览:747
如何让pdf不能打印 浏览:549
单片机和温度传感器 浏览:480
windows服务器怎么分卷 浏览:133
雷云2卡从云服务器同步设置 浏览:957
单片机技术一学就会 浏览:505
手机摄像文件夹名 浏览:134
口才训练手册编译口才精品书系 浏览:999
linuxfunc 浏览:270
高德地图解压后的文件 浏览:639
php加水印类 浏览:228
编译原理定义表格和编写查找函数 浏览:350
指数函数和对数函数的高精度快速算法 浏览:210
c预编译干什么 浏览:25
hp网络共享文件夹 浏览:367
程序员如何不被废 浏览:807
二进制流转pdf 浏览:918
php判断爬虫 浏览:572