当前位置:首页 » 操作系统 » 源码安装g

源码安装g

发布时间: 2022-12-13 20:07:07

linux源码安装mysql遇到困难了。菜鸟在线等答,跪谢!!!!!

现在的Linux发行版一般都预先安装了MySQL,会生成配置文件:/etc/my.cnf。如果你安装另一版本的MySQL,就会引起冲突。你那个异常可以这样处理:
修改/etc/my.cnf(如果不在/etc/下,那从别处找),找到有“skip-federated”字样的那一行,屏蔽之:
#skip-federated
当然,更好的解决方法是彻底移除旧的MySQL。

② 怎么源码安装 PKGCONFIGPATH设置转

怎么源码安装 PKG_CONFIG_PATH设置

如何从源码包安装软件?

从源码包安装软件最重要的就是仔细阅读README INSTALL等说明文件

它会告诉你怎样才能成功安装

通常从源码包安装软件的步骤是:

tar jxvf gtk+-2.4.13.tar.bz2 解开源码包

cd gtk+-2.4.13/ 进入源码目录

./configure 似乎在某些环境下./configure会造成终端退出

而使用. configure则会正常运行,如果有这个现象,就试试 . configure

通过configure程序猜测主机信息,最终建立Makefile,以完成make,所以如果./configure不成功

而去make的话,就会出现"make: *** No targets specified and no makefile found.
Stop."

make 当./configure成功结束后,就开始正式编译程序了.

make install 编译成功后使用make install安装

make uninstall
某些软件支持卸载,可能使用该方法卸载,如果支持的话,通常会在README中写到(似乎比较少)

configure程序带有很多参数,可以通过 ./configure --help
查看详细内容,通常位于前面的是常规configure的

参数说明,末尾是该程序的可用参数说明。

./configure --prefix=/usr
指定安装目录,通常从源码包编译安装的软件默认会放在/usr/local下

因为这是FHS(Filesystem Hierarchy
Standard)的规定,不知道什么是FHS?看看这篇文章吧:
http://www.pathname.com/fhs/pub/fhs-2.3.html相信它会让你对linux系统结构有更好的理解,很值得读读。

再说一下几个关系到能否成功编译的东东:/etc/ld.so.conf ldconfig
PKG_CONFIG_PATH

首先说下/etc/ld.so.conf:

这个文件记录了编译时使用的动态链接库的路径。

默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件

如果你安装了某些库,比如在安装gtk+-2.4.13时它会需要glib-2.0 >=
2.4.0,辛苦的安装好glib后

没有指定 --prefix=/usr
这样glib库就装到了/usr/local下,而又没有在/etc/ld.so.conf中添加/usr/local/lib

这个搜索路径,所以编译gtk+-2.4.13就会出错了

对于这种情况有两种方法解决:

一:在编译glib-2.4.x时,指定安装到/usr下,这样库文件就会放在/usr/lib中,gtk就不会找不到需要的库文件了

对于安装库文件来说,这是个好办法,这样也不用设置PKG_CONFIG_PATH了 (稍后说明)

二:将/usr/local/lib加入到/etc/ld.so.conf中,这样安装gtk时就会去搜索/usr/local/lib,同样可以找到需要的库

将/usr/local/lib加入到/etc/ld.so.conf也是必须的,这样以后安装东东到local下,就不会出现这样的问题了。

将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择 ^_^

添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如:

/usr/X11R6/lib

/usr/local/lib

/opt/lib

再来看看ldconfig是个什么东东吧 :

它是一个程序,通常它位于/sbin下,是root用户使用的东东。具体作用及用法可以man ldconfig查到

简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件 缓存到/etc/ld.so.cache
以供使用

因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下/sbin/ldconfig

使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用的,结果

编译过程中抱错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。 ^_^

我曾经编译KDE时就犯过这个错误,(它需要每编译好一个东东,都要运行一遍),所以

切记改动库文件后一定要运行一下ldconfig,在任何目录下运行都可以。

再来说说 PKG_CONFIG_PATH这个变量吧:

经常在论坛上看到有人问"为什么我已经安装了glib-2.4.x,但是编译gtk+-2.4.x
还是提示glib版本太低阿?

为什么我安装了glib-2.4.x,还是提示找不到阿?。。。。。。"都是这个变量搞的鬼。

先来看一个编译过程中出现的错误 (编译gtk+-2.4.13):

checking for pkg-config... /usr/bin/pkg-config

checking for glib-2.0 >= 2.4.0 atk >=
1.0.1 pango >= 1.4.0... Package glib-2.0 was not
found in the pkg-config search path.

Perhaps you should add the directory containing
`glib-2.0.pc\'

to the PKG_CONFIG_PATH environment variable

No package \'glib-2.0\' found

configure: error: Library requirements (glib-2.0 >=
2.4.0 atk >= 1.0.1 pango >= 1.4.0)
not met; consider adjusting the PKG_CONFIG_PATH environment
variable if your libraries are in a nonstandard prefix so
pkg-config can find them.

[root@NEWLFS gtk+-2.4.13]#

很明显,上面这段说明,没有找到glib-2.4.x,并且提示应该将glib-2.0.pc加入到PKG_CONFIG_PATH下。

究竟这个pkg-config PKG_CONFIG_PATH glib-2.0.pc 是做什么的呢? let me tell you
^_^

先说说它是哪冒出来的,当安装了pkgconfig-x.x.x这个包后,就多出了pkg-config,它就是需要PKG_CONFIG_PATH的东东

pkgconfig-x.x.x又是做什么的? 来看一段说明:

代码:

The pkgconfig package contains tools for passing the include path
and/or library paths to build tools ring the make file
execution.

pkg-config is a function that returns meta information for the
specified library.

The default setting for PKG_CONFIG_PATH is /usr/lib/pkgconfig
because of the prefix we use to install pkgconfig. You may add to
PKG_CONFIG_PATH by exporting additional paths on your system where
pkgconfig files are installed. Note that PKG_CONFIG_PATH is only
needed when compiling packages, not ring run-time.

我想看过这段说明后,你已经大概了解了它是做什么的吧。

其实pkg-config就是向configure程序提供系统信息的程序,比如软件的版本啦,库的版本啦,库的路径啦,等等

这些信息只是在编译其间使用。你可以 ls /usr/lib/pkgconfig
下,会看到许多的*.pc,用文本编辑器打开

会发现类似下面的信息:

prefix=/usr

exec_prefix=${prefix}

libdir=${exec_prefix}/lib

includedir=${prefix}/include

glib_genmarshal=glib-genmarshal

gobject_query=gobject-query

glib_mkenums=glib-mkenums

Name: GLib

Descrīption: C Utility Library

Version: 2.4.7

Libs: -L${libdir} -lglib-2.0

Cflags: -I${includedir}/glib-2.0
-I${libdir}/glib-2.0/include

明白了吧,configure就是靠这些信息判断你的软件版本是否符合要求。并且得到这些东东所在的位置,要不去哪里找呀。

不用我说你也知道为什么会出现上面那些问题了吧。

解决的办法很简单,设定正确的PKG_CONFIG_PATH,假如将glib-2.x.x装到了/usr/local/下,那么glib-2.0.pc就会在

/usr/local/lib/pkgconfig下,将这个路径添加到PKG_CONFIG_PATH下就可以啦。并且确保configure找到的是正确的

glib-2.0.pc,就是将其他的lib/pkgconfig目录glib-2.0.pc干掉就是啦。(如果有的话
^-^)

设定好后可以加入到~/.bashrc中,例如:

PKG_CONFIG_PATH=/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:

/usr/X11R6/lib/pkgconfig

[root@NEWLFS ~]#echo $PKG_CONFIG_PATH

/opt/kde-3.3.0/lib/pkgconfig:/usr/lib/pkgconfig:/usr/local/pkgconfig:/usr/X11R6/lib/pkgconfig

从上面可以看出,安装库文件时,指定安装到/usr,是很有好处的,无论是/etc/ld.so.conf还是PKG_CONFIG_PATH

默认都会去搜索/usr/lib的,可以省下许多麻烦,不过从源码包管理上来说,都装在/usr下

管理是个问题,不如装在/usr/local下方便管理

其实只要设置好ld.so.conf,PKG_CONFIG_PATH路径后,就OK啦 ^_^

另外某些软件因为版本原因(比如emacs-21.3),在gcc-3.4.x下编译无法成功,(make 出错)

使用低版本的gcc就可能编译通过。

可能是因为gcc-3.3.x和gcc-3.4.x变化很大的缘故吧。

暂时想到了这么多,先记下这些吧,如果你对源码包编译有了一点的了解,就不枉我打了这么半天字啦。 ^_^

另外./configure 通过,make
出错,遇到这样的问题比较难办,只能凭经验查找原因,比如某个头文件没有找到,

这时候要顺着出错的位置一行的一行往上找错,比如显示xxxx.h no such file or directory
说明缺少头文件

然后去google搜。

或者找到感觉有价值的错误信息,拿到google去搜,往往会找到解决的办法。还是开始的那句话,要仔细看README,INSTALL

程序如何安装,需要什么依赖文件,等等。

另外对于newbie来说,编译时,往往不知道是否成功编译通过,而编译没有通过就去make install

必然会出错,增加了解决问题的复杂性,可以通过下面方法检查是否编译成功:

一:编译完成后,输入echo $? 如果返回结果为0,则表示正常结束,否则就出错了

echo $? 表示 检查上一条命令的退出状态,程序正常退出 返回0,错误退出返回非0。

二:编译时,可以用&&连接命令,
&&
表示"当前一条命令正常结束,后面的命令才会执行",就是"与"啦。

这个办法很好,即节省时间,又可防止出错。例:

./configure --prefix=/usr && make
&& make install

编译DOSBOX时出现"cdrom.h:20:23: SDL_sound.h: No such file or
directory"

今天忽然想回味下经典DOS游戏,于是编译这个DOSBOX模拟器,README中说明需要SDL_SOUND

于是下载,安装,很顺利,没有指定安装路径,于是默认的安装到了/usr/local/

当编译DOSBOX make 时,出现如下错误:

if g++ -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include
-I/usr/include/SDL -D_REENTRANT -march=pentium4 -O3 -pipe
-fomit-frame-pointer -MT dos_programs.o -MD -MP -MF
".deps/dos_programs.Tpo" -c -o dos_programs.o dos_programs.cpp;

then mv -f ".deps/dos_programs.Tpo" ".deps/dos_programs.Po"; else
rm -f ".deps/dos_programs.Tpo"; exit 1; fi

In file included from dos_programs.cpp:30:

cdrom.h:20:23: SDL_sound.h: No such file or directory
<------错误的原因在这里

In file included from dos_programs.cpp:30:

cdrom.h:137: error: ISO C++ forbids declaration of `Sound_Sample\'
with no type

cdrom.h:137: error: expected `;\' before \'*\' token

make[3]: *** [dos_programs.o] Error 1

make[3]: Leaving directory
`/root/software/dosbox-0.63/src/dos\'

make[2]: *** [all-recursive] Error 1

make[2]: Leaving directory
`/root/software/dosbox-0.63/src\'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/root/software/dosbox-0.63\'

make: *** [all] Error 2

[root@NEWLFS dosbox-0.63]#

看来是因为cdrom.h没有找到SDL_sound.h这个头文件

所以出现了下面的错误,但是我明明已经安装好了SDL_sound阿?

经过查找,在/usr/local/include/SDL/下找到了SDL_sound.h

看来dosbox没有去搜寻/usr/local/include/SDL下的头文件,既然找到了原因,就容易解决啦

[root@NEWLFS dosbox-0.63]#ln -s /usr/local/include/SDL/SDL_sound.h
/usr/include

做个链接到/usr/include下,这样DOSBOX就可以找到了,顺利编译成功,回味仙剑ing....^_^

曾经编译Xorg-6.8.1的时候,也出现找不到freetype.h的问题,原因也是如此。

编译安装软件时,经常遇到类似的情况,都是因为找不到需要的头文件而出现错误,也许是因为

没有安装相关的头文件,或者是安装了但没有找到,如上例。

找不到的情况:做个链接到/usr/include下,就可以了。

没安装的情况:去google找什么东东包括该头文件,安装上就应该可以了。

通常错误提示也都是"No such file or directory",所以编译失败时要好好找找错误信息哦。

错误信息总是在Error上面不远的,耐心点 ^_^

不修改/etc/ld.so.conf使用非默认路径下的库文件-----LD_LIBRARY_PATH

环境变量LD_LIBRARY_PATH列出了查找共享库时除了默认路径之外的其他路径。

如果不想修改或无法修改(无root权限)/etc/ld.so.conf而使用其他路径下的库文件

就需要设置LD_LIBRARY_PATH了,例:export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/lib

这样就可以使用/opt/lib下的库文件啦。当然还是修改/etc/ld.so.conf方便。

③ Linux 下二进制源码包安装mysql 详细过程

安装之前先把二进制源码准备好,可以从搜狐镜像下载:我准备的是mysql-5.5.15-linux2.6-i686.tar.gz
,linux
version
2.6.18-164.el5
实际工作中和虚拟机的配置有些地方可能会不相同
====================================================================
注意:mysql
安装的时候必须指定到
/usr/local
必须命名为mysql
二进制源码安装需要在安装目录/usr/local下运行
复制代码代码如下:
//创建用户mysql
*
groupadd
-g
3306
mysql
*
useradd
-g
mysql
-u
3306
-M
mysql
*
id
mysql
*
chown
-R
mysql:mysql
/mydata/
//
mysql对目录要有写权限
*
ll
-d
/mydata/
*
cp
/mysql-5.5.15-linux2.6-i686
/usr/local
*
cd
/usr/local/mysql
//
开始初始化
mysql
*
chown
-R
mysql:mysql
.
*
ln
-sv
/mysql-5.5.15-linux2.6-i686
mysql
*
scripts/mysql_install_db
--user=mysql
--datadir=/mydata/data
//
<span
style="color:#993300;">scripts脚本初始化</span>
初始化
用来生成mysql数据库
数据库用来存放表等源数据信息
复制代码代码如下:
//安装完成
下面配置启动
*
ls
support-files/
//
准备服务启动脚本
*
cp
support-files/mysql.server
/etc/init.d/mysqld
//
放入init.d
*
chkconfig
--add
mysqld
//
加入服务列表
*
chkconfig
--list
mysqld
//
--list
显示出来
复制代码代码如下:
//此时可以启动mysql了
但还需要配置mysql
*
ls
/etc/my.cnf
*
ls
support-files/
*
cp
support-files/my-large.cnf
/etc/my.cnf
*
vim
/etc/my.cnf
[mysqld]
//
找到该段
并添加datadir
=
/mydata/data
datadir
=
/mydata/data
*
service
mysqld
start
//
开启服务
*
netstat
-tnl
//
3306
端口打开
*
echo
$PATH
*
/usr/local/mysql/bin/mysql
*
export
PATH=$PATH:/usr/local/mysql/bin
//
<span
style="color:#cc6600;">注意</span>:不加$
就仅仅剩下你添加的路径
*
vim
/etc/profile
//
在export
之前添加下面的路径
PATH=$PATH:/usr/local/mysql/bin
//
永久生效的路径配置方法
*
mysql
//
此时mysql已经可启动了
复制代码代码如下:
//mysql库文件的路径配置
*
ls
*
vim
/etc/ld.so.conf
//
修改库文件位置
*
vim
/etc/ld.so.conf.d/mysql.conf
//
规范的配置
当前目录下以.CONF结尾都可以配置
*
ldconfig
-v
|
grep
mysql
//
重新加载所有库文件的路径
没有mysql的库文件
vim
/etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
//
新建mysql.conf
文件
在文件中添加这些内容
*
ldconfig
-v
|
grep
mysql
//
修改之后在重新加载一次
否则服务器不知道
//mysql库文件的路径配置
*
ls
*
vim
/etc/ld.so.conf
//
修改库文件位置
*
vim
/etc/ld.so.conf.d/mysql.conf
//
规范的配置
当前目录下以.CONF结尾都可以配置
*
ldconfig
-v
|
grep
mysql
//
重新加载所有库文件的路径
没有mysql的库文件
vim
/etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
//
新建mysql.conf
文件
在文件中添加这些内容
*
ldconfig
-v
|
grep
mysql
//
修改之后在重新加载一次
否则服务器不知道
复制代码代码如下:
//头文件的配置
库文件有哪些函数以及函数在别人编写程序的时候怎么调用
怎么传递参数
参数类型是什么
返回值类型是是什么
必须找到库文件所对应的头文件
库文件对应的头文件在/
usr/include
*
ls
/usr/include/
*
ln
-sv
/usr/local/mysql/include
/usr/include/mysql
//
头文件的输出
*
vim
/etc/man
*
vim
/etc/man.config
//
添加Man
MANPATH
/usr/local/mysql/man
OK!
mysql
配置成功---

④ ubuntu下源码安装方式,安装完毕之后build文件夹可以删掉吗

应该是可以删除的,不过直接删除不太保险,最好是执行make clean命令,让它按照Makefile的设定自己清理比较好。

⑤ 如何源码安装mysql

方法/步骤

1
[root@localhost soft]# groupadd mysql 添加mysql标准组
[root@localhost soft]# useradd -g mysql mysql 添加mysql用户并加到mysql组中

2
安装mysql
[root@localhost soft]# tar -zxvf mysql-5.5.45.tar.gz
[root@localhost mysql-5.5.46]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data \ #数据文件存放位置
# -DSYSCONFDIR=/etc \ #my.cnf路径
# -DWITH_MYISAM_STORAGE_ENGINE=1 \ #支持MyIASM引擎
# -DWITH_INNOBASE_STORAGE_ENGINE=1 \ #支持InnoDB引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1 \ #支持Memory引擎
# -DWITH_READLINE=1 \ #快捷键功能(我没用过)
# -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock \ #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306 \ #端口
# -DENABLED_LOCAL_INFILE=1 \ #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1 \ #安装支持数据库分区
# -DEXTRA_CHARSETS=all \ #安装所有的字符集
# -DDEFAULT_CHARSET=utf8 \ #默认字符
# -DDEFAULT_COLLATION=utf8_general_ci \ #校验字符
3
修改目录所有者和所有组
[root@end mysql]# chown -R mysql:mysql .
4
初始化数据库
[root@end mysql]# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/
5
复制mysql服务启动配置文件(注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。)
[root@end mysql]# cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf
注册为服务
[root@end mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

让chkconfig管理mysql服务
[root@end mysql]# chkconfig --add mysqld[root@end mysql]# chkconfig mysqld on

设置环境变量
在文件/etc/profile末尾添加
PATH=/usr/local/mysql/bin:$PATH
立即生效
[root@end mysql]# source /etc/profile

启动mysql服务
[root@end mysql]# service mysqld startStarting MySQL...

检查mysql服务是否启动
[root@end mysql]# netstat -tulnp |grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 24351/mysqld
修改mysql用户root密码
[root@end mysql]# mysql -uroot 登录到mysql,首次登陆无密码
设置mysql密码
mysql> SET PASSWORD = PASSWORD('endmoon');
Query OK, 0 rows affected (0.00 sec)
用设置的密码登录
[root@end mysql]# mysql -u root -pEnter password: endmoon
若要设置root用户可以远程访问,执行
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.20' IDENTIFIED BY 'password' WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)
配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口
打开/etc/sysconfig/iptables,在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT后面添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
[root@end mysql]# service iptables restart
使更改的防火墙配置生效 iptables:将链设置为政策 ACCEPT:filter [确定]
iptables:清除防火墙规则: [确定]
iptables:正在卸载模块: [确定]
iptables:应用防火墙规则:
mysql数据库的安装到这里就结束了

⑥ CentOS7下FreeSwitch1.8源码安装过程完整记录

1、yum 安装相关的依赖包

yum install -y git gcc-c++ wget alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtiff-devel libtheora-devel libtool libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel libuuid-devel which yasm zlib-devel

2、安装 mod_shout 模块以支持 mp3 格式

yum install -y libshout-devel lame-devel libmpg123-devel

wget http://downloads.sourceforge.net/project/lame/lame/3.99/lame-3.99.5.tar.gz

tar -zxvf lame-3.99.5.tar.gz

cd lame-3.99.5

./configure --enable-static --enable-shared

make

make install

vi /etc/ld.so.conf

#换行加入:/usr/local/lib

#保存退出 :wq

ldconfig

3、安装 cmake

yum remove cmake

wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz

tar vzxf cmake-3.14.0.tar.gz

cd cmake-3.14.0

./configure

make

make install

4、 安装 libks

yum install libatomic

git clone https://github.com/signalwire/libks.git

cd libks

cmake .

make

make install

5、安装 signalwire-c

git clone https://github.com/signalwire/signalwire-c.git

cd signalwire-c/

cmake .

make

make install

ln -sf

/usr/local/lib64/pkgconfig/signalwire_client.pc

/usr/lib64/pkgconfig/signalwire_client.pc

6、下载并安装 freeswitch1.8

如下 git 为国内址,速度较快,也可以从官方下载源码

git clone -b v1.8 https://git.oschina.net/nwaycn/freeswitch.git

./bootstrap.sh -j

./configure --enable-portable-binary

--prefix=/usr/local/freeswitch

--with-gnu-ld --with-python --with-openssl

--enable-core-odbc-support --enable-zrtp

--enable-libmp3lame

make

make -j install

如下安装语音文件,用时会较长

make -j cd-sounds-install

make -j cd-moh-install

7、安装后的一些操作

设置全局命令软连接

ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/

ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/

禁用 freeswitch 上 ipv6

mv external-ipv6.xml external-ipv6.xml.inactive

mv internal-ipv6.xml internal-ipv6.xml.inactive

8、启动 freeswitch

freeswitch -nc #后台启动

freeswitch 常用命令

#列出 internal SIP Profile 的状态

sofia status profile internal

#列出某个 Profile 上所有已注册用户

sofia status profile internal reg

#过滤某些符合条件

sofia status profile internal reg 1000

sofia status profile internal user 1000

#列出网关状态

sofia status gateway gw1

#以上命令都可以将 status 用 xmlstatus 来代替,以列出 XML 格式的状态,这样比较容易用

于其他程序解析

#启动、停止、重启某个 Profile 的命令

sofia profile internal start #启动

sofia profile internal stop #停止

sofia profile internal restart #重启

#有时候修改了某个 Profile 的某个参数,不需要重启(重启是影响通话的),可以使用下列

命令让 FreeSWITCH 重读 sofia 的配置

#注意并不是所有的参数都能生效

sofia profile internal rescan

#添加了一个新的 gateway 以后,也可以使用 rescan 指令读取

sofia profile external rescan

#如果是修改了一个网关,则可以先删除该网关,再 rescan

sofia profile external killgw gw1

sofia profile external rescan

#下列命令可以指定某个网关立即向外注册或注销

sofia profile external register gw1

sofia profile external unregister

#开启该 Profile 的 SIP 跟踪功能抓 SIP 包

sofia profile internal siptrace on

#有时候,希望将已经注册的用户清理掉,可以使用如下命令,注意此命令只是临时清理,

客户端重新注册的话还是可以注册成功的

sofia profile internal flush_inbound_reg [email protected]

#也可以根据 call-id 来清理

sofia profile internal reg 1000 #通过此命令查找到 call-id 的值

sofia profile flush_inbound_reg zsfsdfhdfgdfsdfsdfsdfsdf #清除 call-id=zsfsdfhdfgdfsdfsdfsdfsdf 的用户

热点内容
豌豆服务器地址 发布:2025-05-15 08:34:56 浏览:712
linux下php编译安装 发布:2025-05-15 08:30:37 浏览:592
c语言八进制十六进制 发布:2025-05-15 08:22:17 浏览:282
华为安卓如何更新鸿蒙 发布:2025-05-15 08:18:52 浏览:373
工商密码器是什么 发布:2025-05-15 08:18:50 浏览:751
c语言自考 发布:2025-05-15 07:52:42 浏览:501
压缩的玉 发布:2025-05-15 07:51:22 浏览:790
android的控件 发布:2025-05-15 07:50:36 浏览:553
南岗法院服务器ip地址 发布:2025-05-15 07:46:02 浏览:288
实况如何退出账号安卓 发布:2025-05-15 07:45:56 浏览:919