日記帳
本ページはプロモーションが含まれています
カテゴリー
Links
blog(ブログ)マスター
アンドロイドの巣
ゼロから始めるベランダ菜園
タイトル
ラジコン
2024年5月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

Search Results

タイトル

執筆:2024.04.08
編集:2024.04.08


先日ちゃちゃちゃとcygwinでPHP8.3を動くようにしたりしてみましたが
今後のことを考慮すると利用しないほうが賢明という結論に至りました!!

基本的なライブラリがメンテされていないので
アンインストールすることにしました!

メンテリストをみると
curl -o "cygwin-pkg-maint_`date +%Y-%m-%d`.txt" "https://cygwin.com/cygwin-pkg-maint"
重要なものが放置なのでオワコンですね

数年したらなくなってそう。

簡単なコマンドならgit bash shellでもできます。
少しの手間で wsl2から直接アクセスできます。
あなたのPCの cygwin 本当に必要ですか?

たまに利用していたアプリは、Linuxにもあるので、cygwinフォルダに保存していたデータ自体かなり減らしていました。
データフォルダを移動して引越ししました。保存していたデータは利用するときに整理することにします。

  • 直接他ドライブのフォルダへ
  • cygwinからの移動データ
    • doccument
    • workspace
すぐに仕分けできないものは後者で分類して、「cygwinからの移動データ」としてNASドライブへ

cygwin32のときにセキュリティ設定でくいついてシステムから削除できないことが昔あったので
64bitにしたときにcygwinのフォルダ自体はドライブマウントしているので、アンマウントしてディスクファイル削除するだけです。

まずは システムからcygwin OSを追放することです

🗑 削除ポチ ✨🌌

使えるから置いておこうって、邪魔なだけです。
アップデートとか時間の無駄。


時代の流れです。
思い切ってスパッと
cygwinを削除しましょう。 



さようなら Cygwin!!
カテゴリー: Linux
2024.04.08

タイトル

執筆:2024.04.04
編集:2024.04.06


cygwin 3.5  PHP-8.3.4

$ uname -ro
3.5.1-1.x86_64 Cygwin

cygwinの環境が独自仕様の変数とか配置とかで
標準のLinuxと違うみたいで
標準のphpのソースだとそのまま通らないみたい。

cygwin環境は
パッチを当てないとPHPのビルドはできません。

以前XP用にXP未サポートのPHP5.6をビルドしたことがあったので、なんとなくconfigureの仕組みは知っていたので、書き換えてみた。

php.cygportのパッチ作り直し
fedoraの分はすぐ手に入ったのでそのまま差し替えて流用。
残りは、不要なものは無視して、必要そうなものだけ ちゃちゃちゃと書き換えて完了。

コンパイル通らない。

なんでphp.cygport全部ひとまとめにしているのだろう。
基本パッケージcli,sapi毎(cgi,apache),extを最低でもわけるべき。
extなんかbuild後に自動でphplizeすればいいことでしょ。デバッグできないような余計なパッケージして手間かけさせて迷惑。
全部まとめるならオプション渡して必要なものに変更できるようにしないと。

自分の用途で動けばいいだけなのでパッケージとかは考えない。

cygport prepでパッチまで当てて、
残りは、./confugiureで使用する環境に合わせる

./configure --prefix=/usr/local/php/8 $OPTIONS_CONF
config.status: executing default commands

+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+

Thank you for using PHP.


make
落ちたところで少し修正
原因が分かったので解決。


あら、作業開始後に cygwinのバージョンが変わってる
$ uname -ro
3.5.3-1.x86_64 Cygwin


完成!!
uname -ro && sapi/cli/php -v




動作確認完了

やったね!🥂

システムのPHPと置き換え
make install

OK 🍕

デフォルトのphp消してもいいかも?
apt-cyg remove php


🍳 phpのインストールパスをシステムに登録して完成。
nano ~/.bashrc
export PATH="/usr/local/php/8/bin:$PATH"

今回はさすがに無理かと思いました🤣🤮

少し手間かかりましたが いけましたね。💯

$ php -r "echo 'PHP'.phpversion().'-'.PHP_OS;"
PHP8.3.4-CYGWIN_NT-10.0-19045

cygwin で PHP8 完🎉🍭

» cygwin 3.5  PHP-8.3.4'">続きを読む

カテゴリー: ぷろぐらみんぐ
2024.04.06

タイトル

執筆:2024.04.03
編集:2024.04.03


うちの仮想マシン内で WSL2は動かないので
cygwinで代用しているわけですが

git bashシェルにはないアプリなので

cygwinの git で pre-commitフック利用しようと思って
実行するアプリの最新版を調べたんですが ない!

cygwin

ORPHANED

だらけ

buildする時間くらい待てるので
srcのcygportを書き換えてみたけど
エラー出る

普通にappのsrcからbuildすればいいかなと
手動でbuildしようと思うとライブラリが古いエラーアタック。
なるほどですね。そこでこけていたんですね

unixは他のツールを利用して成り立っているものが多いので
必要なツールを更新したい
依存ライブラリを更新
さらに依存ライブラリを更新
負のツールチェインが待っている。

そもそもcygwinというOSは協調性がない。オープンソースのパクリでなりなっているくせに
ほかのディストリビューションと変数名やパスを合わせとしないから結果として自動ビルドシステムが構築できない→過疎化が加速

メンテされていないOSはもう復活は不可能

» cygwinオワコン臭・・・'">続きを読む

カテゴリー: General
2024.04.03

gdb for Windows ダウンロード

単独で配っていないようなので
(1) ソースコードを入手して、適当なフォルダに展開します
(2) 自分でビルドします

build gdb for Windows
linuxcygwinを用意して mingwパッケージをインストールしておきます。

まず デバッガに c:\cygwin\bin\gdb.exe が使えないか試したほうが楽でしょう。

静的コンパイル: Windows

cygwinでWindows用バイナリをコンパイル
10分くらいで出来上がります
今回は gdb-8.0を使いました
make distclean
find . -name config.cache -exec rm {} \;
./configure --host=i686-w64-mingw32 \
--disable-host-shared \
LDFLAGS=" -lintl -static -static-libstdc++"
make
# gdb/gdb.exeがあることを確認
# DOSプロンプトで動くことを確認しましょう。
# フォルダ作成(bin)とコピー
mkdir bin
find . -type f -name "*.exe" -exec cp {} bin/ \;
はい、出来上がりました。
chew.exe gdb.exe gdbreplay.exe gdbserver.exe
が binフォルダに入っていると思います。
gdbを実行しコマンドプロンプトが表示されれば成功です。
「quit」と打つとgdbを終了することができます。

Windows用のIDEにgdb.exeの場所を指定して終了です。

【以下のようなエラーは、動的リンクになっています】

  • コンピューターに libintl-8.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
  • コンピューターに libwinpthread-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
解決方法:pathを通すか静的コンパイルすると動きます。

【gccまたは、mingwが古い時のエラー】
  • checking for library containing strerror... configure:
    error: Link tests are not allowed after GCC_NO_EXECUTABLES.
    ターゲット 'configure-libiberty' のレシピで失敗しました
cygwinの場合は、 セットアップを「 setup.exe -o 」で 起動して、管理されていない古いパッケージを削除すると直るかもしれません。
古い i686-pc-mingw32 パッケージを自動削除することで直りました。
カテゴリー: ぷろぐらみんぐ
2017.07.03

SHA-256のハッシュを求める方法

Windows

PowerShell パワーシェル
  1. ファイル Windows PowerShell を開く
  2. 次のコマンドを実行する
    Get-FileHash ファイル名 -Algorithm SHA256

コマンドプロンプト
  1. ファイル コマンドプロンプト を開く
  2. 次のコマンドを実行する
    CertUtil -hashfile ファイル名 SHA256
    出力に空白が含まれるので比較しにくい

その他のOS
  1. シェル を開く
  2. 次のコマンドを実行する
    sha256sum ファイル名
Linux,FreeBSD, cygwin
カテゴリー: General
2017.02.18

git と fossil の比較 git vs fossil-scm

結論をいいますと
* 現段階で,gitからfossilへの移行はしないほうがいいです。

fossilには、ブランチ、タグの削除・抹消機能はありません。

改行コードが絡む場合は、 git を使うほうがいいでしょう。
fossilには、cr-lf 変換機能は ありません。

商用のプログラミング言語には、 LF改行だと
// コメント行
を正常に処理できないものがあり、意図しない動作となります


 2015/12 fossil git svn
料金 無料 無料 無料
リポジトリ ファイル1個 フォルダ .git
ファイル多数
フォルダ
ファイル多数
改行
コード変換
なし あり あり
ブランチの削除 不可※ 可能 可能
空フォルダ 不可    
日本語メニュー なし あり あり
わかりやすさ × ×
操作性 × ◎ 
処理速度
競合ファイルの処理
GUI
×
可搬性
ポータビリティ
×
ライセンス

個人著作物

(2-clause BSD license)

GPL Apache License 
将来性(開発の継続)

△ (?)

◎ (?)
20年後(Windows)の動作 Windowsは下位互換性が非常に優れているため、.netランタイムライブラリを使っていない場合は、将来的に動作で問題を起こすことはまず発生しない。

20年後(Unix系)の動作

〇 (未知 ?)
static build-inの単一ファイルなので問題を起こす要素がない

未知 ? 未知 ?

» 続きを読む

2015.12.02

sqlite.exe .dumpで文字化け 【& patch p2 編】

執筆:2011.12.09
編集:2011.12.10


概要
・sqlite.exe の dumpにHEXモードを追加する方法
・sqlite の 「dump」と「インポート」の仕方
・sqlite の構築の仕方
・php PDO sqlite versionの自動選択手法
ソースコードのダウンロード先

sqlite3に完全移行していたつもりだったのですが
今回、サーバーのDBファイルがあちこちのフォルダに散らばっているため
保存先を統一して整理した結果
version3シリーズへの移行をしていないデータがいくつかありました。

そして dumpすると ビープ音 ビ ビー。
インポートも書式エラーでできない始末。
もー、出力をエスケープしていないようです。

sqlite3に移行するのが目的なので、強引に HEXモードを加えました。
一緒に前回(昨年のパッチ1、set_table_name関数)の修正も入っています

sqlite3.exeの .dumpでは、BLOB型にしていれば、HEX出力されるようです。

とりあえず、
1個のDBを移行するのに使うだけで、
cygwinで動いて 、無事に移行できたのでよしとします。

» 続きを読む

2011.12.09

phpのchmヘルプファイルの作り方(ダウンロードしたchmが 文字化 け)


執筆:2007.07.05
編集:2007.07.05
編集:2011.02.16


公式サイトのchmが文字化けして、キーワードが読めなくなったり
コンテンツが欠けていたり・・・
配布サイクルが長くて待ち遠しい?・・・
正常なときのchm上書きで消しちゃったよ!

 さぁ、さくっと 自分でコンパイルしましょう。

通常はこちら

» 続きを読む

カテゴリー: ぷろぐらみんぐ
2007.07.10

Win Apacheでperlを1行目無視でcgi実行するには


執筆:2006.12.27
編集:2007.01.04


 普通に実行するには、httpd.confに
 Options +ExecCGI 
 AddHandler cgi-script .cgi
を書くだけで使えるでしょう。

そういう人は、これを読んでも意味がありません。

私のような、開発はWin 、サーバーはunix系だと
困ったことになるのです。

Cygwin(Win上で動くLinux)のApache
・Anhttpdサーバー
・仮想OSを使ってApache
・Win Apacheで無理矢理変換

などの選択がありますが、ここでは、無理矢理変換をやってみましょう。

Winでは、
CygwinのApacheやAnhttpdサーバー
を使えばなんの苦労もなく実行できるのですが

Win Apacheを使うと スクリプトの最初が
#!/usr/local/bin/perl
#!c:/prog..../perl.exe
と指定の仕方がちがうのでーす

CygwinのApacheつかえって つっこみは抜きでお願いします。


それで 、直接ハンドラを変更してみると 内部エラー・・・・
unix系で できるのになぜ?

Anhttpdサーバー的な使い方をしたいのですよ!!

いろいろ条件を変え、試して、
どうもWinのperl.exeは、環境変数をよんでくれない?
という結論にいたりました

直接perl.exeにおくらず
仲介ソフト+リダイレクトを通すことにしました。

やっていることは、
カレントディレクトリを変更して
STDINをファイルに書き出して
PATH_INFO
PATH_TRANSLATED
から
単に、コマンド実行させて結果をファイルに保存して、
そのファイルをコンソールにはきだすだけです。

ここで問題になるのが実行の同期問題です。
コマンド実行がくせもので、Win32アプリですと
言語はなんでもいいのですが
Shellexecでは「実行待ち無し」にしかできないので
「実行待ちができる」Shellコマンドを使うのですが、なぜかVBにしかないのです。
VBはもっていないので
Delphi2005でコンパイルできる VB.netで作ってみました。
 (ShellがないためにDelphi → Delphi.net → VB.net という経過をたどりました。)
つい慣れている環境で作ろうとしてしまうので・・・おもわぬところでつまづきました。 
VB.netはコード支援が働かないのでヘルプを見ながらコピペでペタペタと・・・

実行ファイルも7KBと小さいので、問題なしです。

本気でWin運用するには、
Win apacheではなく、仮想OSかCygwin上の方が
全角文字問題やmodrewriteの動作異常につきあわずに済みます。
またそのほうがセキュリティ的にいいと思います。

しかし、記憶容量やメモリや、実行速度の問題で
テストにしか使わないのに、いちいちそんなことできませんよー
というときに この技は 便利なんです。

  ScriptAlias /perl_MyCgi/ "c:/。。。/Perl/bin/"
  Action cgi-script "/perl_MyCgi/perl.exe"
これで 動けば一番いいのですが動かないのです。
※この方法で最近のphpは、動くようです。(php-cgi.exe)。
※perl.exeが馬鹿なので仕方がないです

そこで

CygwinのApacheつかえって つっこみは抜きでお願いします。

やり方は、非常に簡単です。
●ハンドラのオーバーライト(httpd.conf)
  ScriptAlias /perl_MyCgi/ "c:/。。。/Perl/bin/"
  AddHandler perl_cgi .cgi
  Action perl_cgi "/perl_MyCgi/perl_cgi_vb/perl_cgi_vb.exe"
●仲介ソフトの設置(ここでは、perl_cgi_vb.exe)
(※パスの全角文字は壊れるようなので、全角を含む場合は、Cygwinを検討しましょう)

ついでに、スクリプト内でのOSの確認は
if  (index($^O,'Win')
みたいな感じで分岐できます。MSWin32


わぁ。やったぁ・・・
 そ の ま ま
  う ・ ご ・ い ・ た

しつこいですが、
CygwinのApacheつかえって つっこみは抜きでお願いします。

※本気で使う場合は、CygwinのApacheか、仮想OS上で普通に使うほうが安全です。


仲介ソフト のコード(一部)
 VB.net  (Shellを利用するため)
PerlのPath  dim rk  as Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SOFTWARE\Perl")
   if Not(IsNothing(rk)) then
       Perl_exe_Path = rk.GetValue("BinDir","")
   End if
環境変数
の取得
PATH_INFO  = Environment.GetEnvironmentVariable("PATH_INFO")

PATH_TRANSLATED = Environment.GetEnvironmentVariable("PATH_TRANSLATED")
コマンドの
エスケープ用
Function QuotedStr(S as String)
       Dim c as Char
       c = """"  ' ややこしくなるので単純化
       Return c + S.Replace(c, c+c) + c
End Function
  Sub MakeStdinFile()
       dim AFileStream as FileStream
       Dim standardInput as Stream
       dim b as byte
       dim i as integer
      ' STDIN の内容を書き出す
       Temp_IN_FileName = getTempFileName()
       AFileStream = new FileStream(Temp_IN_FileName,FileMode.Create)
       standardInput = Console.OpenStandardInput()
       ' Seekをサポートしていないので 最後にきたかを判定。
       ' ReadByte() 終わりだと -1
       Try
         i = standardInput.ReadByte()
         While (i>-1)
           if (i = -1) then exit While
           b = Cbyte(i)
           AFileStream.WriteByte(b)
           i = standardInput.ReadByte()
         End While  '   Wend
       Finally
         AFileStream.Flush()
         AFileStream.Close()
       End Try
    End Sub
作成関数 Sub MakeStdinFile()
Sub DeleteStdinFile()
Sub DeleteTempFile()
Function getTempFileName() as string
Function cmd() as string
Function QuotedStr(S as String)
Sub ExecCGI()  ' shell
その他
使用したクラス
FileStream
Console.OpenStandardInput()
Console.OpenStandardOutput()

概要
 Stdinの内容をstandardInput.ReadByte()でファイルに納め、
コマンドとともにリダイレクトし、
結果ファイルを、FileStreamでreadbyteで読み込みながら
Console.OpenStandardOutput()へwitebyteで出力します。


CygwinLinuxの場合。

普通に、
httpd.confに
 Options +ExecCGI 
 AddHandler cgi-script .cgi
を書くだけで使えるでしょう。

/usr/bin/perl

/usr/local/bin/perl
の場合に対応できるように

perlが入っていることを確認して
/usr/binと/usr/local/binにシンボリックリンクがあるか確認しましょう。
Cygwinの場合、ln -s /usr/bin/perl /usr/local/bin/ perl
で、リンクを追加しておけば、特に困ることはないと思います。

2007.01.04

win用のphpの拡張をmingw32コンパイルしようとしましたが
ファイルがないとかで
エラーがでて
どうしてもFreeBSDやlinux
windows dllを構築できないので
cygwinをいれてみることにしました。
http://cygwin.com/
dllができればいいだけなので
okです。
500MBくらいくいました。
Xは必要ないのでいれていません。
処理はかなり遅いようです。
cygwin
pkg_add や apt-getみたいなのが
あればいいのになぁ・・・
cygwinのsetup.exeをいちいち起動するのが
面倒だな
カテゴリー: Linux
2006.07.18

PR

[PR]