2014年12月30日火曜日

Fedora20にMySQLのインストール

Fedora20にMySQLをインストール


公式サイトからDownloadstタブからYum Repositoryをクリック。




すると下の方にRed Hat系のdownloadボタンがずらりと並んでいる。
今回はFedora20なのでFedora20のdownloadボタンをクリック。


するとSign Upを促されるが、下のリンク[No thanks, just start my download.]のリンクをコピーする。

そのリンクをrpmでインストール(mysqlがインストールされてないか確認後)

$ rpm -ihv http://dev.mysql.com/get/mysql-community-release-fc20-5.noarch.rpm

無事にインストールが済んだら、リポジトリの確認、mysqlリポジトリがあることを確認。

$ yum repolist
fedora/20/x86_64 Fedora 20 - x86_64 38,597
mysql-connectors-community/20/x86_64 MySQL Connectors Community 19
mysql-tools-community/20/x86_64 MySQL Tools Community 16
mysql56-community/20/x86_64 MySQL 5.6 Community Server 105 updates/20/x86_64 Fedora 20 - x86_64 - Updates 21,028
repolist: 59,810


続いて開発のためのmysql-server mysql-develをインストール

# yum install mysql-server mysql-devel

環境がすべて整ったかrpm -qaで確認

$ rpm -qa mysql*
mysql-community-release-fc20-5.noarch
mysql-community-common-5.6.22-1.fc20.x86_64
mysql-community-client-5.6.22-1.fc20.x86_64
[2439:2439:1230/013727:ERROR:texture_manager.cc(1546)] [.Compositor-0x7faa03908330]GL ERROR :GL_INVALID_VALUE : glTexImage2D: <- error from previous GL command
mysql-community-devel-5.6.22-1.fc20.x86_64
mysql-community-libs-5.6.22-1.fc20.x86_64
mysql-community-server-5.6.22-1.fc20.x86_64

OKならmysqlサービス開始。
気をつけることは、Fedora15、CentOS7からはサービスはsystemdで管理されているため、
/etc/init.d/mysqld start ではなくsystemctl start mysqld.service で開始すること。

# systemctl start mysqld.service 

$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.22 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

これで完了








2014年11月3日月曜日

VMware Playerrのアップデートの失敗

VMware Playerを使用しているとアップデートを促す表示が出ることがあります。
不具合など修正されているのでそのまま指示に従ってアップデートします。

アップデートは以前のWMware Playerをアンインストールし、最新のものをインストールという方法でアップデートしますが、稀に「vmwareplayer_x64.msiが失敗しました。」の様なメッセージが出てアップデートに失敗する場合があります。

この要な場合、ファイルが壊れている場合があるので
公式サイトからダウンロードして再インストールしてみてください。

2014年10月19日日曜日

VMwareでFedora(64bit版)インストールができない場合

VMware PlayerにLinuxディストリビューションをインストールするのはisoファイルから簡単に追加できますが、ホストOSが64bitでも32bitのゲストOSしかインストール出来ない場合があります。

 その時のエラーメッセージが

 >バイナリ変換は、このプラットフォームでのロングモードには対応していません。ロングモードを無効にしています
 >このホストは Intel VT-x に対応していますが、Intel VT-xは無効になっています 

と言うエラーメッセージなら
Intel Virtualication Technologyが無効になっている可能性があります。
その場合は一旦ホストOSの再起動で、BIOSから

BIOSへは起動ボタンを押したあとOSが起動する前にF2ボタンを押せばBIOSの設定に入れます。

Configurationタブから「Intel Virtualization Technology」を「Disabled」から「Enabled」に変更して改めて起動します。

VMwareは複数のOSを効率的に動作させるためにより上位の仮想化モニタを使用して動作するようになっているのですね。

2014年9月28日日曜日

C++11のテスト

早速C++11の機能を試してみます。

推論型(auto)

C++は変数の型は明示的にしてはっきりさせなければならないが、テンプレート型などを利用すると複雑になってしまう。
それを簡単に書くために推論型が追加された。

下記の例ではイテレータをautoを利用して簡潔な記述になっている。

[auto.cpp]

#include <iostream>
#include <vector>

//推論型のテスト
int main() {

  using namespace std;

  vector<int> nums;

  nums.push_back(10);
  nums.push_back(20);
  nums.push_back(30);
  nums.push_back(40);
  nums.push_back(50);

  //before C++
  //vector<int>::iterator it = nums.begin();
  auto it = nums.begin();

  while(it != nums.end()) {
    cout << *it << endl;
    ++it;
  }

  return 0;

}

C++11のコンパイル C++11対応のコードをg++でそのままコンパイルするとエラーが出るので コンパイルするには-std=c++11 オプションをつけてコンパイルします。 $ g++ -std=c++11 auto.cpp -o auto
でコンパイル出来れば成功です。

C++11の環境を作る(Ubuntu)

C++11のリポジトリ

CentOSはなるべく安定版を提供するのがポリシーのためデフォルトのリポジトリのyumコマンドでは最新版を得られません。

現在、C++もC++11を使えるリポジトリがない訳でもありませんが、ライブラリが一部欠けていたり依存関係が解決出来なかったり一発で簡単にインストールできる訳ではないようです。

そこで簡単にC++11環境をインストール出来るようにUbuntuで環境を整えたいと思います。

PPAの使用

UbuntuにはPPAと言うパッケージ管理システムがあり、これを利用すると最新盤の環境が簡単に構築できます。
もちろん最新版は安定版よりリスクが高いのでテスト目的以外に使用するのは止めた方がいいでしょう。

PPAでインストールでいるソフトウェアの検索はlaunchpadで検索します。
add-apt-repository ppa:(アカウント名)/(PPA名)の形式で追加できます。

gccの最新版はここが有名なようなので

$ sudo add-apt-repository ppa:ubuntu-toolchain-r/test

でパッケージインストールします。
現在の最新版は4.9なのでgcc-4.9 と g++-4.9をインストールします。

$ sudo apt-get update
$ sudo apt-get install gcc-4.9 g++-4.9

$ gcc --version
$ g++ --version


で4.9が確認できれば成功です。

2014年9月22日月曜日

Ubuntuのバージョン確認

Ubuntuのバージョン


Ubuntuにアプリをインストールする場合、バージョンによってライブラリの互換性が問題になったりするので事前にバージョンを確認することがあります。

バージョン確認はlsb-releaseの中身に書いてあります。


$ cat /etc/lsb-release


またカーネルのバージョンはunameコマンドで確認できます。


$ uname -a

2014年8月25日月曜日

ある日突然Emacsの起動が遅くなった時の対処法(TIPS)

Linux上でパッケージを次々にインストールしていたら、Emacsの起動が恐ろしく遅くなったというケースがありました。
これはEmacsが重くなった訳ではなく、何かが障害となって起動に遅延が出ているようです。

そんな場合は、まずhostsでホスト名を解決させてください。

/etc/hostsファイルを開き

127.0.0.1   localhost localhost.localdomain
::1         localhost localhost.localdomain

にホスト名を書き込みます。

127.0.0.1   localhost ホスト名 localhost.localdomain
::1         localhost ホスト名 localhost.localdomain

"ホスト名"の部分に自分のホスト名を書き込みます。

自分のホスト名が分からない場合はhostnameで表示出来ます。

$ hostname

Emacsはエディタと言うにはあまりにも多機能ですが、だからと言ってIDEのような起動速度になったらこれを疑ってみてください。

2014年8月14日木曜日

Web開発に強いエディタbluefishをインストールする

開発者が生産性を高めるにはやはり目的に合った道具が必要でしょう。
今回Web開発に当たってCentOS上でLAMP開発を構築するためLinux環境でWeb開発に強いエディタが必要です。

今回は、オープンソースでWeb開発に評判の良いbluefishをインストールします。
http://sourceforge.net/projects/bluefish/files/bluefish/


configure: error: Package requirements (gtk+-3.0 gdk-3.0 glib-2.0 >= 2.24 gmodule-2.0 >= 2.24 gobject-2.0 pango gdk-pixbuf-2.0 gio-unix-2.0 >= 2.24 gthread-2.0 libxml-2.0) were not met:

No package 'gtk+-3.0' found
No package 'gdk-3.0' found
No package 'glib-2.0' found
No package 'gmodule-2.0' found
No package 'gobject-2.0' found
No package 'pango' found
No package 'gdk-pixbuf-2.0' found
No package 'gio-unix-2.0' found
No package 'gthread-2.0' found
No package 'libxml-2.0' found

ソースからmakeしようとしましたが、自分の環境下では不足なパッケージが多くあったので諦めて、rpmからインストールします。

rpmは
http://bfwiki.tellefsen.net/index.php/Installing_Bluefish
から落とせます。

自分の環境は64bitなので
Required for RHEL/CentOS 6.5..
x86_64

のパッケージを落とします。

$ wget http://bluefish.linuxexperience.net/downloads/epel6/release/x86_64/bluefish-shared-data-2.2.6-1.el6.noarch.rpm
 $ wget http://bluefish.linuxexperience.net/downloads/epel6/release/x86_64/bluefish-2.2.6-1.el6.x86_64.rpm

スーパーユーザーに変更して
依存性の関係からbluefish-shared-data-2.2.6-1.el6.noarch.rpmからインストールします。

# rpm -ivh bluefish-shared-data-2.2.6-1.el6.noarch.rpm
# rpm -ivh bluefish-2.2.6-1.el6.x86_64.rpm

$ bluefish -v
Bluefish エディタ 2.2.6
ホームページは http://bluefish.openoffice.nl です

バージョンが確認できたら完了です。











SConsをインストールする

SConsとはコンフィギュレーションファイルがPythonで書かれたビルドツール。
Pythonで書かれたmakeの代替ツールの様なもの。
C/C++ファイルの依存関係を自動分析してビルドしてくれる。

今回必要になったのでsconsをインストールします。
CentOSにyumパッケージがあったのでそれで済まします。

# yum install scons

# scons -v
SCons by Steven Knight et al.:
script: v2.0.1.r5134, 2010/08/16 23:02:40, by bdeegan on cooldog
engine: v2.0.1.r5134, 2010/08/16 23:02:40, by bdeegan on cooldog
Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation

これでOK


2014年7月7日月曜日

C++での入出力

最初の入出力iostream

プログラミング言語で最初に行うのは、自分の打ちこんだデータを出力することでしょう。 そのためにまず入出力の方法を知らなければなりません。 

C++の基本入出力はiostreamです。 Cをやったことある人はstdio.hというヘッダファイルを取りこむ(インクルードする)ことで基本入出力が出来るようになりました。 C++では、入出力はストリームという概念で抽象化されていていくつかある変数の型を出力出来るような形に整えて出力します。
出力は出力演算子 << 入力には入力演算子 >> がそれぞれ定義されています。

基本例:
#include <iostream>
using namespace std;


int main() {

  cout << "テスト" << endl;

}


 Cと同じようにiostreamをインクルードすれば使えますが、Cと違なることは名前空間があること。 名前空間とはいわば所属を指定するためのもので、Cで問題だった同じ名前の衝突を避けるためのものです。 たとえば、A組の佐藤さんとB組の佐藤さんを混同させないようにA組という名前空間を指定するようなイメージです。
名前空間はusing namespace (使う名前空間); という形で利用できます。
名前空間を指定せずに使用しようとすると入出力するためにすべてのオブジェクトにスコープ解決演算子を使わなければなりません。

using namespace を使用しない例
#include <iostream>

int main() {

  std::cout << "テスト" << std::endl;

}


書き方がいささか冗長になります。
ただし、std名前空間は入出力を含めた標準的なヘッダファイルを含む広大な名前空間のため、テスト以外は使わないのが主流の様です。



2014年6月18日水曜日

DOMのclassListを使ってみる

classListとは

classListはHTML5で追加された比較的新しいプロパティです。
リスト化されたことによりclassNameプロパティで直接操作するより簡便にクラスを変更できるようになりました。

JavaScriptでスタイルをアクティブに変更するのに便利です。

classListのメソッド

メソッド名 機能
add(class)クラスリストへクラスを追加
remove(class)クラスリストからクラスを削除
contains(class)
toggle(class)クラスリストにclassが含まれていれば削除、なければ追加
item(number)クラスリストの番号を入れることで名前を取得
lengthクラスリストの要素数

toggleを使った例




 
 
 
 classList




classList




2014年5月12日月曜日

C++でHello World

C++で最初の表示

以下のコードを入力

#include <iostream>

int main() {
  
  std::cout << "Hello World!" << std::endl;

}


書けたらファイル名を hello.cpp として保存
g++でコンパイルします。


$ g++ -o hello hello.cpp

コンパイルが無事通り、以下の表示がされたら成功です。

Hello World!

◆ 解説

最初の一行
#Include <iostream>
はディレクティブと呼ばれるもので「#ディレクティブ名」で定義します。
includeディテクティブはヘッダを読み込むものでここでは標準出力のヘッダ「iostream」を読み込んでいます
これを一番初めに書くことによって標準出力の機能を使うことが出来るのですね。





2014年5月7日水曜日

CでHello World

CでHello World

CでHello World
もっとも有名なイントロなので説明するまでもないですね。

#include <stdio.h>

int main(void) {
  
  printf("Hello World!");

  return 0;
}

2014年5月4日日曜日

CentOS 6でC/C++開発環境を整える

近年、パソコンの需要が急速に減退し、一気にスマートフォンに置き換わってきました。
ネット閲覧もパソコンからスマートフォンに主役が移ってきています。

そこでWeb周りの技術だけでなくネイティブアプリやデバイスの深い部分まで動かすにはC/C++の知識はどうしても必要になってきます。

ということでC/C++の入門から覚書まで適当に書いていきます。

使用環境:
CentOS 6.6 (Linux)

コンパイラのインストール

まず、ターミナルを開きC/C++が使える環境かどうか確認します。
$ which gcc
/usr/bin/gcc

$ which g++
/usr/bin/g++
と出ればコンパイル可能です。
無い人はyumでg++をインストールしてください
# yum install gcc gcc-c++
インストールできたら確認
$ g++ --version

g++ (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
CentOSの標準リポジトリのものは少々古いものです。
最新のC++11に対応したい場合はgcc 4.7以上にしないといけません。

CentOSは実用を重視しているので標準で提供されているソフトウェアは安定はしていますが少々古いバージョンのものしか提供されていません。最新とは言いませんが、せめて今のトレンドが追えるバージョンをインストール出来ないかと思うユーザーも多いかと思います。

そういった要望に答えるべく開発元のRedHatはSoftware CollectionsとDeveloper Toolsetというソリューションを提供してくれました。
Software Collectionsでは開発者の要望の高かったPHPやMySQLなど比較的新しいバージョンを提供してくれます。Developer ToolsetはC、C++等開発者向けのツールが提供されています。
また/opt以下にインストールされ、新しいバージョンと古いバージョンを使い分けることが出来ます。

Developer Toolset2.0ではGCC4.8を提供してくれているのでそれを使いましょう。

# cd  /etc/yum.repos.d/
# wget http://people.centos.org/tru/devtools-2/devtools-2.repo
# yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran

これでインストール完了。
新しいバージョンのGCCを使うには次のコマンドで変更します。

$ scl enable devtoolset-2 bash
$ g++ --version
g++ (GCC) 4.8.2 20140120 (Red Hat 4.8.2-15)
Copyright (C) 2013 Free Software Foundation, Inc.

これでCentOSでもC++11の開発が可能になります。

エディターのインストール

エディタは使い勝手のよくメジャーなEmacsを使用します。

$ which emacs

で無ければインストールしてください。

# yum -y install emacs

でバージョン確認

$ emacs --version
GNU Emacs 23.1.1
Copyright (C) 2009 Free Software Foundation, Inc.
GNU Emacs comes with ABSOLUTELY NO WARRANTY.
...........

CentOSでは最新版ではないですが最新版が欲しい場合は
ここのミラーあたりからダウンロードして自分でmakeしてください。