解決CMake Error: The source directory "*" does not appear to contain CMakeLists.txt.

Hi 大家好,我是鍾義林,昨兒個安裝mysql,遇到了幾個問題,現在打算把問題的解決方法寫出來,和大家分享一下,這次我就不截圖了,下面大家一起看一下

問題:一、CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt. 下面是我從crt裏copy出來的

有必要說明一點,我用的系統是centos

Linux localhost.zidonghua1 2.6.32-358.14.1.el6.x86_64 #1 SMP Tue Jul 16 23:51:20 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

===============================================================================

[root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# cmake .

CMake Error: The source directory "/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64" does not appear to contain CMakeLists.txt.

Specify --help for usage, or press the help button on the CMake GUI.

[root@Evil mysql-5.7.3-m13-linux-glibc2.5-x86_64]# pwd

/opt/mysql-5.7.3-m13-linux-glibc2.5-x86_64


在解決這個問題前,請允許我吐槽兒一番,我先是在google搜索和搜狗搜索上找了一下(百度基本不靠譜,經過確實,依然是不靠譜),沒有一個可解決的方法,可能是我沒找到,但確實沒有,n多的回答是 你沒有在mysql的安裝目錄裏,pwd指令已經很清楚的說明了我就在mysql的目錄中,可就是不行。後來我在mysql的官方網站上也沒找到解決方法,最終我藉助了“強大”的google翻譯,把官網上的內容一個個的copy進google翻譯裏進行翻譯,最終我解決了這個問題。吐槽到此結束吧。


首先要多說一下,大家一般去mysql的官方網站的時候,都會下載社區版,因爲mysql被oracle收購後,除了社區版都需要付費。所有大家都會下載 mysql community server *.*.** 對吧,這裏我就談如何註冊一個賬號了,下載前會在 select platform:這裏選擇要下載的版本。linux - Generic 這個選項所有下載下來的包很大,而且還沒法用,這裏說明一下,也行是我不會用,不會裝。


解決方法如下,還在http://dev.mysql.com/downloads/mysql/*.*heml#downloads 這個網頁中(我這這個網頁打不開哦*.*是你要下載的版本號) 在select platform 裏選擇 source code


wKiom1MYNtPAngoeAAEvc7-iqVw085.jpg


然後下載 再安裝


總結一下,說那麼多廢話,終歸,最可能你就是所下載的版本可能對,所帶來的錯誤。

在此還強調一下,如果你的版本確認是正確的,但是還是出現問題,建議-yum卸載

yum remove cmake* 把camke卸載 從官網上下載cmake編譯安裝


#/bin/sh

cd /usr/local/src/

wget http://wwwNaNake.org/files/v2.8/cmake-2.8.12.2.tar.gz

tar zxvf cmake-2.8.12.2.tar.gz

cd cmake-2.8.12.2

./configure

Make

Make install


然後我有遇到另個問題。

make: *** 沒有指明目標並且找不到 makefile。 停止。

我不可能沒有裝make,而且gcc、devel、libs等等我都有裝。這個問題又是怎麼回事呢?

其實是這樣的  cmake成功了就會生成makefile,使用make的時候系統會在當前目錄找makefile

如果cmake失敗了呢,就不會有,但是你在編譯貌似還不行,不得不說一下我的原因是因爲

- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)

CMake Error at cmake/readline.cmake:83 (MESSAGE):

 Curses library not found.  Please install appropriate package,


     remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

Call Stack (most recent call first):

 cmake/readline.cmake:127 (FIND_CURSES)

 cmake/readline.cmake:217 (MYSQL_USE_BUNDLED_LIBEDIT)

 CMakeLists.txt:354 (MYSQL_CHECK_READLINE)



-- Configuring incomplete, errors occurred!

See also


原因就是

package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.

我少了ncurses (你可以用 yum install ncurses ncurses-devel ncurses-libs 來進行安裝)

我當時有點拙急,我用的額方法是 yum install *ncurses* 其實一樣的,這個不是問題,問題是make 還是報錯!


解決方法如下

wKioL1MYPI_Ayw96AAFSsJF4bhk077.jpg

看見 CMakeCache.txt 了嗎? 刪掉它,然後重新使用 cmake 開始編譯mysql

rm -rf CMakeCache.txt


===================================================================================


寫完這篇博文呢,我感覺自己有點二,也確實挺二的,能碰到這些問題,不應該爲這些小問題糾結的

好了,就當在吐槽一句吧


下面我把 安裝mysql的方式 給大家copy出來


/cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ -DINSTALL_DATADIR=/usr/local/mysql/data/master -DSYSCONFDIR=/usr/local/mysql/etc  \

-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1  \

-DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_USER=mysql \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock


make && make install



groupadd mysql

shell> useradd -r -g mysql mysql

useradd -g mysql mysql -s /bin/false

chown -R mysql:mysql /usr/local/mysql

mkdir /usr/local/mysql/etc



shell> cd /usr/local/mysql

shell> chown -R mysql .

shell> chgrp -R mysql .

shell> scripts/mysql_install_db --user=mysql

shell> chown -R root .

shell> chown -R mysql data

shell> bin/mysqld_safe --user=mysql &


cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server




cp support-files/my-default.cnf /usr/local/mysql/etc/my.cnf

cp support-files/mysql.server /etc/init.d/mysqld-sh

vi /usr/local/mysql/etc/my.cnf

 bind-address=

 socket =

 port = 3306

 user = mysql



vi /etc/init.d/mysqld-sh

 basedir=

 datadir

 mysqld_pid_file_path=



chmod +x /etc/init.d/mysqld-sh


/usr/local/mysql/scripts/mysql_install_db \

--defaults-extra-file=/usr/local/mysql/etc/my.cnf \

--basedir=/usr/local/mysql \

--datadir=/usr/local/mysql \

--user=mysql



/etc/init.d/mysqld-sh start


/usr/local/mysql/bin/mysqladmin -u root password '你的密碼'


cp /usr/local/mysql/bin/mysql /bin/mysql



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章