Submitted by gouki on 2024, June 10, 11:30 AM
直接 gem install mysql2报错。确实很烦人,因为我 mysql 本身本机没有,所以就不太可能安装 mysql-client 之类的。于是安装了 mysql-client。但还是报错。无法编译。
看网上的文章是安装 mariadb,然后指定 mysql-config 就 OK 了。我已经懒得弄了。。。。。
你看 postgresql 多方便,安装失败的时候 ,提示你 brew install libpq,就行了(确实是在我 install libpq 后,gem 就走完了)
真不知道那些本地没有 mysql 的人是怎么忍受得了 mysql2这样的库的(也可能只是我受不了吧)
---
问了一下 gpt,他说我安装好 mysql-client 后,还要指定一下:
export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
然后再运行就 OK 了。于是我又重新 retry 了一下。但还是失败了
--
如果要成功就参考这个吧:https://medium.com/@0x88/%E5%9C%A8-macos-%E7%84%A1%E7%97%9B%E5%AE%89%E8%A3%9D-ruby-mysql2-gem-apple-m1-intel-mac-%E9%81%A9%E7%94%A8-330f996ae3c7,我是不想再试了。要么 sqlite ,要么 pgsql 吧
Tags: ruby, mysql, postgresql
Scala & Ruby | 评论:0
| 阅读:1791
Submitted by gouki on 2024, June 7, 12:57 PM
Rails 在进行开发的时候 ,默认没有 hotreload。当然其实 laravel 也没有,但 laravl 因为用了 vite,所以其实是可以使用 vite 的 hot reload 的功能。vite 里还有 laravel 的插件,直接就支持了。
rails 里如何配置呢?其实也很简单,在 Gemfile 中的 group :development 中增加 `gem "hotwire-livereload"`,然后 bundle install 就OK 了。
当然这只是先添加了 hotwire 的库,还需要运行 rails livereload:install,会在 application.html.erb 的header 头中增相应的 js引用
同时还修改了 config/cable.yml,增加了 redis 的相关引用。
这就意味着,原来没有使用 redis 的。你需要安装一下 redis 才 OK,配置完后,再打开模板进行修改保存后,会发现页面确实刷新了。
步骤简化成:
1、add hotwire-livereload
```
group :development do
gem "hotwire-livereload"
end
```
2、bundle install (这里面要注意如果你注释了默认的 source,可能会失败,指定一下 source 即可,如果镜像的 source 不能下载,设置为 rubygems.org 即可)
3、rails livereload:install
4、rails server (如果有报错,可以看一下原因:可能的原因是:a. redis server 不存在 b.redis-server 不能连接)
Tags: ruby, rails
Scala & Ruby | 评论:0
| 阅读:1764
Submitted by gouki on 2024, June 5, 9:47 AM
Laravel 官方在推上说即将推出 Laravel11,这次的推出的版本将以极致的精简,而且去掉了很多原来为了结构而分拆的文件。象 Console/Http 下的 Kernel 文件,全部去掉,而且改 bootstrap/app.php 来实现了,在路由里甚至留了一下 health 。用于其他监控项目来检查服务器是否正常。默认是:http://{hostname}/up,我在本地运行下来,执行时间是39ms,所以我就更加想尝试用11来把我当前的博客重写一下(之前写的时候 ,都是考虑直接使用原来的数据库结构,导致写了几次都发现很不 laravel,所以几次就放弃了)
Filament,是一个后台管理项目,基于 livewire 的(关于 livewire,可以查看 https://livewire.laravel.com ),号称是不用写 JS 的后台管理。之所以选择这个,是本来几年前用的是 dcat-admin,然而作者也已经好多年没更新了(这就是使用第三方开源项目的尴尬之处,作者也不太可能用爱发电,如果项目没有赢利或者找不到赢利点,这个项目很可能就无疾而终了)。而选择 filament 也是因为看中了他的生态,有完善的插件平台(有免费和付费插件)。一旦有人购买插件,会促使更多的人使用并扩展(搜了一下,其实有不少类似的,象:splade.dev / tomatophp / nova[官方] ),但目前看下来,好象还在持续更新的就是 filament 了。在推上也能看到 filament 挺活跃。所以选择它做为接下来3年的后台管理。
今天就先到这里先介绍一下这两个项目,然后准备开始写,遇到踩坑的地方也会记录一下。
项目开始其实很方便
laravel new blog,就可以初始化项目了。因为考虑到其实暂时不需要前台登录,所以没有用 breeze 和 jetstream。
项目初始化后,运行 composer require filament/filament 就可以安装好filament 了
这时候还要运行 php artisan filament:install --panels。安装完面板后,可以通过安装时指定的路由进行访问(默认是 admin,可以在运行的时候 进行设置)【备注:后期要修改的话,可以在 app/Providers/Filament/AdminPanelProvider.php 中进行调整】
但此时还不能登录,因为没有 breeze 和 jetstream ,所以连注册也没有,此时只能通过 php artisan make:filament-user 来新建一个用户。
此时,filament就已经安装完了。项目正式启动。
Tags: laravel, filament
PHP | 评论:0
| 阅读:1957
Submitted by gouki on 2024, May 20, 1:48 PM
网关上有 IPv6,小米路由器也支持 IPV6,但是国内支持 IPV6的网站太少了。导致打开各种网页都是卡成狗的样子。
把 小米的 IPV6关掉后,打开网站也立刻飞了起来
所以,暂时关掉,但没有和电信说关,这样我真要用的时候 ,也还可以立刻开始(直连电信的猫就行了)
同时,发现 IPV6下,迅雷下载速度飞起来了。
不知道是 BUG 还是确实是 IPV6不太好拦
-----
更新,又换成 IPV6啦 。估计是默认的电信的 ipv6的 dns 有问题,换成百度和阿里的,立刻就飞了起来
2400:da00::6666
2400:3200::1
备份一下:更多的查看这里:https://dns.iui.im/
Ideas | 评论:0
| 阅读:2038
Submitted by gouki on 2024, May 16, 8:35 AM
有一说一,这真是一个大难题,如果用 dig -AAA github.com +short,是可以得到 ipv6的,但如果你 dig -AAAA api.github.com +short,返回的就是空。
在这种情况下就啥也拿不到了,查了不少资料。发现确实没有,但还是有好心人做了一个项目,即反代 github的资源,并提供了 ipv6的地址,就在:/etc/hosts 里加入下面的内容
2a01:4f8:c010:d56::2 github.com
2a01:4f8:c010:d56::3 api.github.com
2a01:4f8:c010:d56::4 codeload.github.com
2a01:4f8:c010:d56::5 objects.githubusercontent.com
2a01:4f8:c010:d56::6 ghcr.io
2a01:4f8:c010:d56::7 pkg.github.com npm.pkg.github.com maven.pkg.github.com nuget.pkg.github.com rubygems.pkg.github.com
参考:https://danwin1210.de/github-ipv6-proxy.php。好歹是能用了,不是吗?
Linux | 评论:0
| 阅读:2138